我已经写了一个详细的教程,包含这个问题的前两个答案: 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在哪里可以findiostream
或其他标准的c ++头文件; 我不想在多个步骤中链接。
我不关心性能,效率,链接器的使用等等。我只是想能够正确设置clang / gcc /任何东西,这样我就可以使用一个单一的,快速和肮脏的控制台命令上面那个。
我需要安装什么才能工作 ?
作为一个主要的Mac / Linux用户,我习惯于能够使用包pipe理器来安装刚刚工作的最新版本的叮当声。
我现在试图在Windows上设置clang / gnu编译器,这似乎是困难得多,如果只是因为有很less或没有直接的文档(我已经能够find)
我试图按照这个教程: https : //yongweiwu.wordpress.com/2014/12/24/installing-clang-3-5-for-windows – 并能够使用它来获取铛build立和链接(使用gcc 4.8.2),但得到的二进制文件是32位。
我已经尝试安装最新的预编译二进制文件( 3.6.2 )和64位版本的mingw-w64( 对于64位posix和sjlj,4.9.3为4.9.3 ),并获得:
hello.cpp:1:10: fatal error: 'iostream' file not found #include <iostream> ^ 1 error generated.
这似乎表明铛没有看到gcc的文件。 看来LLVM / clang的某些版本只在寻找特定版本的gcc,但似乎并没有被logging在任何地方?
同样有人在LLVM IRC上向我提到,你需要修改clang的驱动程序来在某些path中查找gcc?
如果需要的话,我可以从源代码构buildLLVM / Clang,但是我真的只是寻找清晰的分步说明,使我可以像使用mac / linux一样轻松地使用clang++
就像是:
this version
并将其放置在that directory
this version
的cygwin(或mingw32或mingw-w64)并安装these packages
。 如果你使用即将到来的clang 3.7.0,只要设置PATH来包含mingw-w64的bin,clang就可以像你期望的那样工作
尝试安装MSYS2 ,然后安装mingw-w64-x86_64-clang(二进制)软件包:
pacman -S mingw-w64-x86_64-clang
现在有点老了(3.6.2),但对你来说可能已经足够了。 然后当你运行由MSYS2提供的Win64 shell时, clang
将会在你的路径上。
如果不够好,我最近已经用MSYS2构建了一个64位版本的clang,并使用它来编译原生的64位Windows可执行文件。 我的过程是这样的:
export MINGW_INSTALLS=mingw64
(所以你只编译64位版本),然后运行makepkg-mingw
。 第一次尝试就不太可能会得到一切,有些文件可能需要编辑。 铿锵可能已经改变,因为我做了这个,有些补丁可能不适用于干净。