关于c ++:我应该下载哪个Clang编译器?

Which Clang compiler should I download?

我想在我的系统上安装Clang compliler。 我去了这个链接,但是那里有那么多下载选项使我感到困惑,我应该下载哪个版本?

我正在使用戴尔的笔记本电脑:Windows 7 Basic 64位。 我已经安装了MinGW 4.5.0版。 我还安装了Visual Studio 2008和2010。

您认为对我来说最好的选择是什么? 我应该下载哪个Clang? 我应该如何配置? 我将第一次使用Clang。 因此,建议我最好的选择!

顺便说一句,我可以配置Clang(或Visual Studio),以便Visual Studio可以使用Clang编译器来编译我的C和C ++代码吗?

编辑:

当下载页面含糊地显示" Mingw32 / x86的前端二进制文件"时,这是什么意思?


您可以将Clang与Visual Studio或MinGW一起使用。这是你的选择。但是,您将需要一个外部链接器来生成Windows可执行文件(MSVS的link.exe或MinGW的ld.exe / g ++。exe)。

如果要使用MinGW,请下载倒数第二项(前端二进制文件到mingw)。

您也可以从源代码编译Clang / LLVM,有关信息请参见此处。这使您可以尝试MSVS或MinGW(-w64)。在构建过程中将需要CMake。

更新:关于您的编辑:"前端"描述反映了以下事实:可以通过llvm-gcc将llvm用作GCC编译的后端(谷歌对此有很多信息),或者Clang本身无法链接您的代码一起放入可执行文件或库中。如上所述,您仍然需要系统的链接器。


Clang现在开始发布Windows快照版本


没有。前端二进制文件@ Mingw32 / x86已经关闭,但是您明确提到Windows 7 Basic 64位
因此,具体来说,您将利用64位优势。因此,您将在http://clang.llvm.org/get_started.html#buildWindows中执行步骤。您可能会获得VS2012 Express,并且带有CMake的字符串应为" Visual Studio 11 Win64",而不是从Windows中选择默认版本的调试配置下拉菜单,然后构建。工具链是紧密耦合的层次结构,MS对非标准扩展的沉迷从来没有任何其他供应商实施最新。直到llvm libcpp完成MinGW-W64是我从http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Automated%20Builds/mingw-w64-bin_i686-mingw_20111220.zip获得的最接近的libstdc ++ / download在http://mingw-w64.sourceforge.net/中检查较新的版本,以下是我对Hi控制台应用程序的试用电话

clang ++。exe -fno-ms-compatibility -fno-use-cxa-atexit -IC:\ mingw \ include \ c ++ \ 4.7.0 -IC:\ mingw \ include \ c ++ \ 4.7.0 \ x86_64-w64-mingw32- IC:\ mingw \ include \ c ++ \ 4.7.0 \ backward -IC:\ mingw \ include -c C:\ Users \ Vipul \ Documents \ Hello.cpp -o C:\ Users \ Vipul \ Documents \ Hello.o

ld.exe -oC:\ Users \ Vipul \ Documents \ Hello.exe C:\ Users \ Vipul \ Documents \ Hello.o -m i386pep -Bdynamic -Lc:\ mingw \ lib c:\ mingw \ lib \ crt2.oc :\ mingw \ lib \ crtbegin.o -lstdc ++ -lmingw32 -lgcc_s -LC:\ Windows \ SUA \ opt \ gcc64 \ lib \ gcc \ x86_64-pc-interix6 \ 4.6.0 -lgcc -lmoldname -lmingwex -lmsvcrt -ladvapi32 -lshell32 -luser32 -lkernel32 c:\ mingw \ lib \ crtend.o

仅在一次配置IDE设置的情况下设置参数,例如Code :: Blocks传递给ld链接程序的库是使用-v和g ++一起确定的,因为clang ++会尝试将VS2012二进制文件链接到libc ++源。使用g ++而不是ld更容易,但由于在源代码内通过对工具位置进行硬编码而紧密链接工具链,因此很少会失败,并且在内部找不到ld。