问题
I have installed Clang by using apt-get in Ubuntu, and I can successfully compile C files using it. However, I have no idea how to compile C++ through it. What do I need to do to compile C++?
回答1:
The command clang
is for C, and the command clang++
is for C++.
回答2:
Also, for posterity -- Clang (like GCC) accepts the -x
switch to set the language of the input files, for example,
$ clang -x c++ some_random_file.txt
This mailing list thread explains the difference between clang
and clang++
well: Difference between clang and clang++
回答3:
I do not know why there is no answer directly addressing the problem. When you want to compile C++ program, it is best to use clang++
. For example, the following works for me:
clang++ -Wall -std=c++11 test.cc -o test
If compiled correctly, it will produce the executable file test
, and you can run the file by using ./test
.
Or you can just use clang++ test.cc
to compile the program. It will produce a default executable file named a.out
. Use ./a.out
to run the file.
The whole process is a lot like g++ if you are familiar with g++. See this post to check which warnings are included with -Wall
option. This page shows a list of diagnostic flags supported by Clang.
回答4:
I've had a similar problem when building Clang from source (but not with sudo apt-get install
. This might depend on the version of Ubuntu which you're running).
It might be worth checking if clang++
can find the correct locations of your C++ libraries:
Compare the results of g++ -v <filename.cpp>
and clang++ -v <filename.cpp>
, under "#include < ... > search starts here:".
来源:https://stackoverflow.com/questions/9148488/how-do-i-compile-c-with-clang