Ubuntu'da apt-get kullanarak Clang'ı kurdum ve onu kullanarak C dosyalarını başarılı bir şekilde derleyebiliyorum. Ancak, C ++ 'ı bunun aracılığıyla nasıl derleyeceğime dair hiçbir fikrim yok. C ++ 'ı derlemek için ne yapmam gerekiyor?
Yanıtlar:
Sorunu doğrudan ele alan bir yanıtın neden olmadığını bilmiyorum. C ++ programını derlemek istediğinizde kullanmak en iyisidir clang++. Örneğin şu benim için çalışıyor:
clang++ -Wall -std=c++11 test.cc -o test
Doğru derlenirse, yürütülebilir dosyayı üretir ve dosyayı testkullanarak çalıştırabilirsiniz ./test.
Ya da sadece clang++ test.ccprogramı derlemek için kullanabilirsiniz . Adlı varsayılan bir yürütülebilir dosya üretecektir a.out. ./a.outDosyayı çalıştırmak için kullanın .
Eğer g ++ 'ya aşina iseniz, tüm süreç g ++ gibidir. Bkz Bu yayını ile birlikte hangi uyarılar kontrol etmek -Wallseçeneği. Bu sayfa , Clang tarafından desteklenen tanılama bayraklarının bir listesini gösterir.
Ayrıca, gelecek nesil için - Clang (GCC gibi) -x, giriş dosyalarının dilini ayarlamak için anahtarı kabul eder, örneğin,
$ clang -x c++ some_random_file.txt
Bu posta listesi dizisi, arasındaki clangve clang++iyi arasındaki farkı açıklıyor : clang ve clang ++ arasındaki fark
#include <iostream>. -lstdc ++ bayrağı bu sorunu çözdü.
clang.exebu yürütülebilir dosyayı oluşturur ve sonra clang++.exe. Dolayısıyla, aynı çalıştırılabilir dosya, tam çalışma zamanında C veya C ++ derleyicisi olarak davranıp davranmayacağını ayırt etmek için kendi adını kontrol eder. HTH.
-x c++bir şekilde elde çok yararlı -extra-argiçin çınlama-Tidy C yerine C ++ ihtiva eden bir .h dosyası tedavi etmek için zorlamak için,
clang++ve ona ne tür dosyalar sağladığınızı algılamasına izin vermek daha iyidir . Bir proje içerebilir zaman .cppdosyaları .lldosyaları (LLVM ir) ve .o, .a, .soüçüncü parti kütüphanelerinden ve ne değil dosyaları, clang -x c++sadece yukarı fırlatır.
Kaynaktan Clang oluştururken benzer bir sorun yaşadım (ama ile değil sudo apt-get install. Bu, çalıştırdığınız Ubuntu sürümüne bağlı olabilir).
clang++C ++ kitaplıklarınızın doğru konumlarını bulup bulamayacağınızı kontrol etmeye değer olabilir :
"#İnclude <...> arama burada başlar:" altındaki g++ -v <filename.cpp>ve sonuçlarını karşılaştırın clang++ -v <filename.cpp>.
Bir Terminal penceresi açın ve proje dizininize gidin. Hangi derleyiciyi kurduğunuza bağlı olarak bu komut setlerini çalıştırın:
Clang ++ kullanarak birden çok C ++ dosyasını derlemek için:
$ clang++ *.cpp
$ ./a.out
G ++ kullanarak birden çok C ++ dosyasını derlemek için:
$ g++ -c *.cpp
$ g++ -o temp.exe *.o
$ ./temp.exe