আমি উবুন্টুতে অ্যাপটি- গেট ব্যবহার করে ক্ল্যাং ইনস্টল করেছি এবং এটি ব্যবহার করে আমি সি ফাইলগুলি সফলভাবে সংকলন করতে পারি। তবে এর মাধ্যমে কীভাবে সি ++ সংকলন করা যায় সে সম্পর্কে আমার কোনও ধারণা নেই। সি ++ কম্পাইল করার জন্য আমার কী করা দরকার?
উত্তর:
কেন জানি না কেন সরাসরি সমস্যার সমাধান করার কোনও উত্তর নেই। আপনি যখন সি ++ প্রোগ্রামটি সংকলন করতে চান, এটি ব্যবহার করা ভাল clang++
। উদাহরণস্বরূপ, নিম্নলিখিতটি আমার পক্ষে কাজ করে:
clang++ -Wall -std=c++11 test.cc -o test
যদি সঠিকভাবে সংকলিত হয় তবে এটি এক্সিকিউটেবল ফাইল তৈরি করবে test
এবং আপনি ব্যবহার করে ফাইলটি চালাতে পারবেন ./test
।
অথবা আপনি কেবল clang++ test.cc
প্রোগ্রামটি সংকলন করতে ব্যবহার করতে পারেন । এটি একটি ডিফল্ট নির্বাহযোগ্য ফাইল নামক উত্পাদন করবে a.out
। ./a.out
ফাইল চালাতে ব্যবহার করুন।
আপনি জি ++ এর সাথে পরিচিত হলে পুরো প্রক্রিয়াটি অনেকটা জি ++ এর মতো। বিকল্পগুলির সাথে কোন সতর্কতা অন্তর্ভুক্ত রয়েছে তা পরীক্ষা করতে এই পোস্টটি দেখুন -Wall
। এই পৃষ্ঠাটি ক্ল্যাং দ্বারা সমর্থিত ডায়াগনস্টিক ফ্ল্যাগগুলির একটি তালিকা দেখায়।
এছাড়াও, উত্তরোত্তর জন্য - কলং (জিসিসির মতো) -x
ইনপুট ফাইলগুলির ভাষা সেট করতে স্যুইচটি গ্রহণ করে , উদাহরণস্বরূপ,
$ clang -x c++ some_random_file.txt
এই মেলিং তালিকার থ্রেডটি পার্থক্যটি clang
এবং ভালটির ব্যাখ্যা করে clang++
: ঝনক এবং ঝনঝন ++ এর মধ্যে পার্থক্য
#include <iostream>
। -lstdc ++ পতাকা এই সমস্যার সমাধান করেছে।
clang.exe
এবং তারপরে এক্সিকিউটেবলের অনুলিপি করে clang++.exe
। সুতরাং এটি একই নির্বাহযোগ্য, কেবল রানটাইম এ এটি নিজের নাম পরীক্ষা করে সি বা সি ++ সংকলক হিসাবে আচরণ করবে কিনা তা আলাদা করার জন্য। এইচটিএইচ।
-x c++
একটি হিসাবে দিতে খুবই কাজে লেগেছে -extra-arg
করার ঝনঝন-পরিপাটি , যেমন সি ++ ধারণকারী সি পরিবর্তে একটি জ ফাইল চিকিত্সা ফোর্স নিয়ে
clang++
কী ধরণের ফাইল সরবরাহ করে তা সনাক্ত করতে দেয়। একটি প্রকল্প থাকতে পারে যখন .cpp
ফাইল, .ll
ফাইল (llvm IR) এবং .o
, .a
, .so
তৃতীয় পক্ষের লাইব্রেরি থেকে এবং কি না ফাইল, clang -x c++
শুধু নিক্ষেপ করা হবে।
উত্স থেকে কলং তৈরি করার সময় আমারও একই সমস্যা হয়েছিল (তবে এর সাথে নয় sudo apt-get install
This এটি উবুন্টুর যে সংস্করণটি আপনি চালাচ্ছেন তার উপর নির্ভর করে)।
এটি যদি চেক করা মূল্যবান হতে পারে clang++
আপনার সি ++ লাইব্রেরির সঠিক অবস্থানগুলি খুঁজে পেতে :
"# অন্তর্ভুক্ত <...> অনুসন্ধান এখানে শুরু হয়:" এর নীচে g++ -v <filename.cpp>
এবং এর ফলাফলগুলির সাথে তুলনা করুন clang++ -v <filename.cpp>
"
একটি টার্মিনাল উইন্ডো খুলুন এবং আপনার প্রকল্প ডিরেক্টরিতে নেভিগেট করুন। আপনি কোন সংকলকটি ইনস্টল করেছেন তার উপর নির্ভর করে কমান্ডের এই সেটগুলি চালান:
ক্ল্যাং ++ ব্যবহার করে একাধিক সি ++ ফাইল সংকলন করতে:
$ clang++ *.cpp
$ ./a.out
G ++ ব্যবহার করে একাধিক সি ++ ফাইল সংকলন করতে:
$ g++ -c *.cpp
$ g++ -o temp.exe *.o
$ ./temp.exe