如何使用Clang编译C++?

pyt*_*nic 86 c++ clang

我在Ubuntu中使用apt-get 安装了Clang,我可以使用它成功编译C文件.但是,我不知道如何通过它编译C++.编译C++需要做什么?

adl*_*adl 134

该命令clang用于C,命令clang++用于C++.


Kim*_*man 45

此外,对于后代 - Clang(如GCC)接受-x开关来设置输入文件的语言,例如,

$ clang -x c++ some_random_file.txt
Run Code Online (Sandbox Code Playgroud)

这个邮件列表线程解释了clang和之间的区别clang++:clang和clang ++之间的区别

  • 当使用`#include <iostream>`编译cpp文件时,我的_clang -x c ++ _有一个链接器错误._-lstdc ++ _ flag解决了这个问题. (2认同)

jdh*_*hao 33

我不知道为什么没有直接解决问题的答案.当你想编译C++程序时,最好使用clang++.例如,以下内容适用于我:

clang++ -Wall -std=c++11 test.cc -o test
Run Code Online (Sandbox Code Playgroud)

如果编译正确,它将生成可执行文件test,您可以使用运行该文件./test.

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

如果你熟悉g ++,整个过程就像g ++一样.请参阅此文章以查看-Wall选项中包含的警告.此页面显示Clang支持的诊断标志列表.

  • @Mr.Robot我的意思是,与使用“clang”相比,最好使用“clang++”来编译cpp,而不是与使用“g++”相比。 (3认同)
  • 感谢您实际回答问题。 (2认同)

lig*_*and 6

解决方案一:

  clang++ your.cpp
Run Code Online (Sandbox Code Playgroud)

解决方案2:

  clang your.cpp -lstdc++
Run Code Online (Sandbox Code Playgroud)

解决方案3:

   clang -x c++ your.cpp
Run Code Online (Sandbox Code Playgroud)


Guy*_*ini 5

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

可能值得检查是否clang++可以找到 C++ 库的正确位置:

g++ -v <filename.cpp>比较“#include < ... > 搜索从此处开始:”下的和的结果clang++ -v <filename.cpp>