Joh*_*nes 45 windows gcc llvm-clang c++11 clang++
我写了一篇详细的教程,其中包含了这个问题的前两个答案: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;
}
Run Code Online (Sandbox Code Playgroud)
我希望能够做到以下几点:
clang++ hello.cpp -o hello.exe -std=c++14
Run Code Online (Sandbox Code Playgroud)
并得到一个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位.
我已经尝试安装最新的prengilt clang(3.6.2)和64位版本的mingw-w64(4.9.3用64位posix和sjlj用于例外),我得到:
hello.cpp:1:10: fatal error: 'iostream' file not found
#include <iostream>
^
1 error generated.
Run Code Online (Sandbox Code Playgroud)
这似乎表明clang没有看到gcc的文件.似乎某些版本的LLVM/clang只在寻找某些版本的gcc,但这似乎没有记录在任何地方?
同样有人在LLVM IRC上提到你需要修改clang的驱动程序以在某些路径中查找gcc吗?
如果有必要,我可以从源代码构建LLVM/Clang,但我真的只是寻找清晰的逐步说明,这样我就可以clang++像使用mac/linux一样轻松地使用它
就像是:
this versionLLVM/Clang并将其放入that directorythis versioncygwin(或mingw32或mingw-w64)并安装these packages.Dav*_*son 13
尝试安装MSYS2,然后安装mingw-w64-x86_64-clang(二进制)包:
pacman -S mingw-w64-x86_64-clang
Run Code Online (Sandbox Code Playgroud)
目前它有点老了(3.6.2),但它对你来说可能已经足够了.然后,当您运行MSYS2提供的Win64 shell时,clang将在您的路径上.
如果它还不够好,我最近一直在用MSYS2构建一个64位版本的clang并使用它来编译本机64位Windows可执行文件.我的过程是这样的:
export MINGW_INSTALLS=mingw64(因此您只编译64位版本),然后运行makepkg-mingw.您不太可能在第一次尝试时完成所有操作,并且可能需要编辑某些文件.自从我上次这样做以来,Clang可能已经发生了变化,一些补丁可能不会干净利落.