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ı test
kullanarak çalıştırabilirsiniz ./test
.
Ya da sadece clang++ test.cc
programı derlemek için kullanabilirsiniz . Adlı varsayılan bir yürütülebilir dosya üretecektir a.out
. ./a.out
Dosyayı ç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 -Wall
seç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 clang
ve clang++
iyi arasındaki farkı açıklıyor : clang ve clang ++ arasındaki fark
#include <iostream>
. -lstdc ++ bayrağı bu sorunu çözdü.
clang.exe
bu 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-arg
iç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 .cpp
dosyaları .ll
dosyaları (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