我已经在Ubuntu中使用apt-get安装了Clang,我可以使用它成功编译C文件。但是,我不知道如何通过它编译C ++。编译C ++需要做什么?
答案 0 :(得分:124)
命令clang
用于C,命令clang++
用于C ++。
答案 1 :(得分:44)
此外,对于后代 - Clang(如GCC)接受-x
开关来设置输入文件的语言,例如,
$ clang -x c++ some_random_file.txt
此邮件列表主题解释了clang
和clang++
之间的区别: Difference between clang and clang++
答案 2 :(得分:27)
我不知道为什么没有直接解决问题的答案。如果要编译C ++程序,最好使用clang++
。例如,以下内容适用于我:
clang++ -Wall -std=c++11 test.cc -o test
如果编译正确,它将生成可执行文件test
,您可以使用./test
运行该文件。
或者您可以使用clang++ test.cc
来编译程序。它将生成一个名为a.out
的默认可执行文件。使用./a.out
运行该文件。
如果您熟悉g ++,整个过程就像g ++一样。请参阅this post以查看-Wall
选项中包含的警告。 This page显示了Clang支持的诊断标志列表。
答案 3 :(得分:3)
从源代码构建Clang时我遇到了类似的问题(但不是sudo apt-get install
。这可能取决于你正在运行的Ubuntu的版本。)
可能值得检查clang++
是否可以找到C ++库的正确位置:
在“#include&lt; ...&gt; search starts here”下比较g++ -v <filename.cpp>
和clang++ -v <filename.cpp>
的结果。
答案 4 :(得分:1)
解决方案1:
clang++ your.cpp
解决方案2:
clang your.cpp -lstdc++
解决方案3:
clang -x c++ your.cpp
答案 5 :(得分:0)
打开“终端”窗口,然后导航到您的项目目录。根据您安装的编译器,运行以下命令集:
使用clang ++编译多个C ++文件:
data "aws_s3_bucket" "something" { # get the bucket info
bucket = "some name"
}
resource "aws_s3_bucket" "somebucket" {
bucket = data.aws_s3_bucket.something.bucket # refer to it and make changes
lifecycle_rule {
id = "Expiration Rule"
enabled = true
prefix = "reports/"
expiration {
days = 30
}
}
}
要使用g ++编译多个C ++文件:
$ clang++ *.cpp
$ ./a.out