আমি কীভাবে ঝাঁকুনির সাথে সি ++ সংকলন করব?


98

আমি উবুন্টুতে অ্যাপটি- গেট ব্যবহার করে ক্ল্যাং ইনস্টল করেছি এবং এটি ব্যবহার করে আমি সি ফাইলগুলি সফলভাবে সংকলন করতে পারি। তবে এর মাধ্যমে কীভাবে সি ++ সংকলন করা যায় সে সম্পর্কে আমার কোনও ধারণা নেই। সি ++ কম্পাইল করার জন্য আমার কী করা দরকার?

উত্তর:


150

কমান্ডটি clangসি এর জন্য এবং কমান্ডটি clang++সি ++ এর জন্য।


53

কেন জানি না কেন সরাসরি সমস্যার সমাধান করার কোনও উত্তর নেই। আপনি যখন সি ++ প্রোগ্রামটি সংকলন করতে চান, এটি ব্যবহার করা ভাল clang++। উদাহরণস্বরূপ, নিম্নলিখিতটি আমার পক্ষে কাজ করে:

clang++ -Wall -std=c++11 test.cc -o test

যদি সঠিকভাবে সংকলিত হয় তবে এটি এক্সিকিউটেবল ফাইল তৈরি করবে testএবং আপনি ব্যবহার করে ফাইলটি চালাতে পারবেন ./test

অথবা আপনি কেবল clang++ test.ccপ্রোগ্রামটি সংকলন করতে ব্যবহার করতে পারেন । এটি একটি ডিফল্ট নির্বাহযোগ্য ফাইল নামক উত্পাদন করবে a.out./a.outফাইল চালাতে ব্যবহার করুন।

আপনি জি ++ এর সাথে পরিচিত হলে পুরো প্রক্রিয়াটি অনেকটা জি ++ এর মতো। বিকল্পগুলির সাথে কোন সতর্কতা অন্তর্ভুক্ত রয়েছে তা পরীক্ষা করতে এই পোস্টটি দেখুন -Wallএই পৃষ্ঠাটি ক্ল্যাং দ্বারা সমর্থিত ডায়াগনস্টিক ফ্ল্যাগগুলির একটি তালিকা দেখায়।


5
আসলে প্রশ্নের উত্তর দেওয়ার জন্য ধন্যবাদ।
কিউরিয়াস

50

এছাড়াও, উত্তরোত্তর জন্য - কলং (জিসিসির মতো) -xইনপুট ফাইলগুলির ভাষা সেট করতে স্যুইচটি গ্রহণ করে , উদাহরণস্বরূপ,

$ clang -x c++ some_random_file.txt

এই মেলিং তালিকার থ্রেডটি পার্থক্যটি clangএবং ভালটির ব্যাখ্যা করে clang++: ঝনক এবং ঝনঝন ++ এর মধ্যে পার্থক্য


4
সিপিপি ফাইলটি যখন সংকলিত হয়েছিল তখন ক্ল্যাং -x সি ++ এর সাথে আমার লিঙ্কারের ত্রুটি ছিল #include <iostream>-lstdc ++ পতাকা এই সমস্যার সমাধান করেছে।
স্লাভ

4
আমার চোখের সামনে এখন আমার কাছে ক্ল্যাংয়ের উত্স কোড রয়েছে। বিল্ড করার সময় (উইন্ডোজে), এটি প্রথমে তৈরি করে clang.exeএবং তারপরে এক্সিকিউটেবলের অনুলিপি করে clang++.exe। সুতরাং এটি একই নির্বাহযোগ্য, কেবল রানটাইম এ এটি নিজের নাম পরীক্ষা করে সি বা সি ++ সংকলক হিসাবে আচরণ করবে কিনা তা আলাদা করার জন্য। এইচটিএইচ।
সার্জ রোগাচ

একটি নোট হিসাবে, বিকল্প -x c++একটি হিসাবে দিতে খুবই কাজে লেগেছে -extra-argকরার ঝনঝন-পরিপাটি , যেমন সি ++ ধারণকারী সি পরিবর্তে একটি জ ফাইল চিকিত্সা ফোর্স নিয়ে
এ্যাড এন

আপনি উত্স থেকে পুরো জিনিসটি তৈরি না করা পর্যন্ত এটি আসলে কার্যকর হতে খুব সীমাবদ্ধ। এটি কেবলমাত্র ব্যবহার করা ভাল এবং এটি আপনাকে clang++কী ধরণের ফাইল সরবরাহ করে তা সনাক্ত করতে দেয়। একটি প্রকল্প থাকতে পারে যখন .cppফাইল, .llফাইল (llvm IR) এবং .o, .a, .soতৃতীয় পক্ষের লাইব্রেরি থেকে এবং কি না ফাইল, clang -x c++শুধু নিক্ষেপ করা হবে।
সহসাহে

5

উত্স থেকে কলং তৈরি করার সময় আমারও একই সমস্যা হয়েছিল (তবে এর সাথে নয় sudo apt-get installThis এটি উবুন্টুর যে সংস্করণটি আপনি চালাচ্ছেন তার উপর নির্ভর করে)।

এটি যদি চেক করা মূল্যবান হতে পারে clang++ আপনার সি ++ লাইব্রেরির সঠিক অবস্থানগুলি খুঁজে পেতে :

"# অন্তর্ভুক্ত <...> অনুসন্ধান এখানে শুরু হয়:" এর নীচে g++ -v <filename.cpp>এবং এর ফলাফলগুলির সাথে তুলনা করুন clang++ -v <filename.cpp>"



0

একটি টার্মিনাল উইন্ডো খুলুন এবং আপনার প্রকল্প ডিরেক্টরিতে নেভিগেট করুন। আপনি কোন সংকলকটি ইনস্টল করেছেন তার উপর নির্ভর করে কমান্ডের এই সেটগুলি চালান:

ক্ল্যাং ++ ব্যবহার করে একাধিক সি ++ ফাইল সংকলন করতে:

$ clang++ *.cpp 
$ ./a.out 

G ++ ব্যবহার করে একাধিক সি ++ ফাইল সংকলন করতে:

$ g++ -c *.cpp 
$ g++ -o temp.exe *.o
$ ./temp.exe
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.