我想在我的系统上安装Clang compliler。我去了this link,但是有很多下载选项让我困惑,我应该下载哪个版本?
我正在使用戴尔的笔记本电脑:Windows 7 Basic 64位。我已经安装了MinGW 4.5.0版。我还安装了Visual Studio 2008以及2010.
您认为对我来说最好的选择是什么?我应该下载哪个Clang?我该如何配置?我将第一次使用Clang。所以建议我最好的选择!
顺便说一句,我可以配置Clang(或Visual Studio),以便Visual Studio可以使用Clang编译器来编译我的C和C ++代码吗?
编辑:
当download page加密地说“Mingw32 / x86的前端二进制文件”时,它是什么意思?
答案 0 :(得分:14)
您可以将Clang与Visual Studio或MinGW一起使用。这是你的选择。但是你需要一个外部链接器来生成Windows可执行文件(MSVS的link.exe或MinGW的ld.exe / g ++。exe)。
如果你想使用MinGW,请下载最后一项(前端二进制文件到mingw)。
您也可以从源代码编译Clang / LLVM,请参阅here。这允许您试用MSVS或MinGW(-w64)。你需要CMake来构建过程。
更新:关于你的编辑:“前端”描述反映了llvm可以通过llvm-gcc用作GCC编译中的后端这一事实(google上有大量信息)或者Clang本身无法将您的代码链接到可执行文件或库中这一事实。您仍然需要系统的链接器,如上所述。
答案 1 :(得分:2)
Clang now开始发布Windows snapshot builds
答案 2 :(得分:1)
无。前端二进制文件@ Mingw32 / x86已关闭,但您明确提到了Windows 7 Basic 64位 所以非常具体,你将获得64位的好处。因此,您将按照http://clang.llvm.org/get_started.html#buildWindows的步骤进行操作。您可能会获得VS2012 Express,而使用CMake的字符串应该是“Visual Studio 11 Win64”选择Release而不是下拉列表中的默认调试配置然后构建。工具链是紧密耦合的层次结构,MS在非标准扩展中的放纵从来都不是任何其他供应商实现的最新版本。直到llvm libcpp完成MinGW-W64是我从http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Automated%20Builds/mingw-w64-bin_i686-mingw_20111220.zip/download获得的最接近的libstdc ++在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链接器的lib是使用-v与g ++一起确定的,因为clang ++将尝试将libc ++源与VS2012二进制文件链接。使用g ++而不是ld更容易,但由于工具链通过源代码中的硬编码工具位置的紧密耦合而很难在内部找不到ld。