为什么我不能用clang编译这个程序?

时间:2015-07-04 12:19:14

标签: c++ windows compiler-errors clang++ llvm-clang

我已从here下载了Windows快照构建。我只是运行该可执行文件&写下以下简单的C ++程序

#include <iostream>
int main()
{
     std::cout<<"Welcome to Clang\n";
}

clang ++ 999.cpp

999.cpp:1:10: fatal error: 'iostream' file not found
#include <iostream>
         ^
1 error generated.

这里出了什么问题?我错过了什么?我该怎么做才能成功编译我的C&amp; Windows上的C ++程序使用clang?

2 个答案:

答案 0 :(得分:2)

没有Windows平台支持clang的C ++标准库:http://libcxx.llvm.org/

这就是为什么你可以&#39;只需在windows中编译此代码:它无法找到您所指的标题。

编辑:

根据汤姆的评论,你可以给clang一个构建目标:

clang -target i686-pc-windows-win32 ....

当给出win32目标时,clang将使用msvc的库(如果已安装),并且环境变量INCLUDE未设置为其他位置。

但请注意,llvm website会提供免责声明:

  

Clang主要适用于Windows,但目前并不了解所有内容   C和C ++的Microsoft扩展。因此,铿锵   也无法解析Visual Studio附带的C ++标准库   Windows Platform SDK的一部分。但是,大多数标准C程序   做编译。

答案 1 :(得分:1)

您需要安装Visual Studio。

Clang使用它的库和标题。