如何用clang编译C ++

我已经在Ubuntu下使用apt-get安装了clang ,并且可以使用它成功编译C文件。 但是,我不知道如何通过它来编译C ++。 我需要做什么来编译C ++?

命令clang用于C,命令clang++用于C ++。

另外,为后代叮当(如GCC)接受-x开关来设置input文件的语言,例如

 $ clang -x c++ some_random_file.txt 

这个邮件列表线程很好地解释了clang和clang ++之间的区别: http : //clang-developers.42468.n3.nabble.com/Difference-between-clang-and-clang-td3001279.html

从源码构buildclang时,我遇到了类似的问题(但是不能使用sudo apt-get install,这可能取决于您运行的Ubuntu版本)。

这可能是值得检查,如果铿锵++可以find您的C ++库的正确位置:比较“#包括<…>search开始”下g ++ -v <filename.cpp>和clang ++ -v <filename.cpp>的结果这里:”。

我不知道为什么没有直接解决问题的答案。 当你想编译C ++程序。 最好用clang ++,例如下面这个为我工作:

 clang++ -Wall -std=c++11 test.cc -o test 

如果编译正确,会产生可执行文件test ,可以使用./test运行该文件。

或者你可以使用clang++ test.cc来编译程序,它会产生一个名为a.out的默认的可执行文件。 使用./a.out来运行该文件。

如果你熟悉g ++,整个过程就像g ++一样。 看到这篇文章 ,检查哪些警告包括在-Wall选项。 该页面显示了clang支持的诊断标志列表。