更新:
我写了一篇详细的教程,结合了这个问题中排名前两位的答案:http://blog.johannesmp.com/2015/09/01/installing-clang-on-windows-pt1/
简而言之
在Windows上,给定以下程序:
#include <iostream>
int main()
{
int arr[] = {1, 2, 3, 4, 5};
for(auto el : arr)
{
std::cout << el << std::endl;
}
return 0;
}
我希望能够做到以下事情:
clang++ hello.cpp -o hello.exe -std=c++14
获得一个64位的可执行文件,即可运行。我不想添加大量的-I
包含目录来告诉clang在哪里找到iostream
或其他标准的C++头文件; 我也不想进行多次链接。
我并不太关心性能、效率、使用哪个链接器等等。我只想让clang/gcc/任何东西正确设置,以便我可以使用一个简单、快速且不太规范的控制台命令,就像上面的例子一样。
我需要安装什么才能使这个即可运行?
问题
作为主要使用Mac/Linux的用户,我习惯于使用包管理器安装最新版本的clang,这样就可以即可运行。
现在我正在尝试在Windows上设置clang/gnu编译器,但似乎要困难得多,可能是因为没有直截了当的文档(至少我没能找到)。
我尝试遵循这个教程:https://yongweiwu.wordpress.com/2014/12/24/installing-clang-3-5-for-windows - 并且能够使用它来构建和链接clang(使用gcc 4.8.2),但生成的二进制文件是32位的。
我尝试安装最新的预编译二进制版本的clang (3.6.2) 和64位的mingw-w64 (4.9.3 for 64 bit with posix and sjlj for exceptions),但出现以下问题:
hello.cpp:1:10: fatal error: 'iostream' file not found
#include <iostream>
^
1 error generated.
这似乎表明clang没有看到gcc的文件。 LLVM / clang的某些版本似乎只寻找特定版本的gcc,但似乎没有在任何地方记录?
类似地,LLVM IRC上有人告诉我,您需要修改clang的驱动程序以查找特定路径中的gcc?
我正在寻找的内容
如果必要,我可以从源代码构建LLVM / Clang,但我真正想要的是清晰的,逐步说明,使我能够像在mac / linux上一样轻松使用clang ++
的说明。
类似于:
- 构建
此版本
的LLVM / Clang,并将其放置在该目录
中 - 下载并安装cygwin(或mingw32或mingw-w64)的
这个版本
,然后安装这些软件包
。 - 等等...