如何使用Clang编译C ++?

时间:2012-02-05 10:26:33

标签: c++ clang

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

6 个答案:

答案 0 :(得分:124)

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

答案 1 :(得分:44)

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

$ clang -x c++ some_random_file.txt

此邮件列表主题解释了clangclang++之间的区别: 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