Saya telah menginstal Clang dengan menggunakan apt-get di Ubuntu, dan saya berhasil mengkompilasi file C menggunakannya. Namun, saya tidak tahu bagaimana mengkompilasi C ++ melaluinya. Apa yang harus saya lakukan untuk mengompilasi C ++?
Jawaban:
Saya tidak tahu mengapa tidak ada jawaban yang langsung menangani masalah tersebut. Saat Anda ingin mengkompilasi program C ++, yang terbaik adalah menggunakan clang++
. Misalnya, berikut ini berfungsi untuk saya:
clang++ -Wall -std=c++11 test.cc -o test
Jika dikompilasi dengan benar, itu akan menghasilkan file yang dapat dieksekusi test
, dan Anda dapat menjalankan file dengan menggunakan ./test
.
Atau Anda bisa menggunakan clang++ test.cc
untuk mengkompilasi program. Ini akan menghasilkan file executable default bernama a.out
. Gunakan ./a.out
untuk menjalankan file.
Seluruh prosesnya mirip dengan g ++ jika Anda sudah terbiasa dengan g ++. Lihat posting ini untuk memeriksa peringatan mana yang disertakan dengan -Wall
opsi. Halaman ini menunjukkan daftar tanda diagnostik yang didukung oleh Clang.
Selain itu, untuk anak cucu - Clang (seperti GCC) menerima -x
sakelar untuk mengatur bahasa file input, misalnya,
$ clang -x c++ some_random_file.txt
Utas milis ini menjelaskan perbedaan antara clang
dan clang++
well: Perbedaan antara clang dan clang ++
#include <iostream>
. -lstdc ++ flag memecahkan masalah ini.
clang.exe
, lalu salin file yang dapat dieksekusi ke clang++.exe
. Jadi itu dapat dieksekusi yang sama, hanya pada waktu proses ia memeriksa namanya sendiri untuk membedakan apakah berperilaku sebagai kompiler C atau C ++. HTH.
-x c++
sangat berguna untuk memberikan sebagai -extra-arg
ke dentang-rapi , untuk memaksa untuk mengobati H file sebagai mengandung C ++ bukan C.
clang++
dan membiarkannya mendeteksi jenis file apa yang Anda berikan padanya. Ketika sebuah proyek dapat berisi .cpp
file, .ll
file (llvm ir) dan .o
, .a
, .so
dan apa yang tidak file dari perpustakaan pihak ketiga, clang -x c++
hanya akan muntah.
Saya mengalami masalah serupa saat membuat Clang dari sumber (tetapi tidak dengan sudo apt-get install
. Ini mungkin tergantung pada versi Ubuntu yang Anda jalankan).
Mungkin perlu diperiksa apakah clang++
dapat menemukan lokasi yang benar dari pustaka C ++ Anda:
Bandingkan hasil g++ -v <filename.cpp>
dan clang++ -v <filename.cpp>
, di bawah "#include <...> pencarian dimulai di sini:".