【问题标题】:Which Clang compiler should I download?我应该下载哪个 Clang 编译器?
【发布时间】:2011-06-30 17:54:35
【问题描述】:

我想在我的系统上安装 Clang 编译器。我去了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 的前端二进制文件”是什么意思

【问题讨论】:

  • 还有,为什么不建议我选择呢?
  • 我会使用 VS,因为我有它,它的 IDE 很容易上手,而且你可以免费获得它。虽然我没有用 C 语言为 Windows 编程,但我认为如果扩展名只是 .c,旧版本的 VSC++ 可以在 C 模式(不是 C++)下编译。
  • @kenny:使用 VS,您可以将项目配置为在 C 模式下编译。

标签: c++ c visual-studio gcc clang


【解决方案1】:

Clang now 开始发布Windows snapshot builds

【讨论】:

    【解决方案2】:

    没有。 Front End Binaries @ Mingw32/x86 已接近,但您明确提到了 Windows 7 Basic 64-bit 所以要非常具体,您将获得 64 位的好处。因此,您将按照http://clang.llvm.org/get_started.html#buildWindows 的步骤进行操作,您可能会获得 VS2012 Express 并且带有 CMake 的字符串应该是“Visual Studio 11 Win64” 从下拉列表中选择发布而不是默认调试配置,然后构建。工具链是紧密耦合的层次结构,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 链接器的库是使用 -v 和 g++ 确定的,因为 clang++ 将尝试将 libc++ 源链接到 VS2012 二进制文件。使用 g++ 而不是 ld 更容易,但由于工具链通过在源代码中硬编码工具位置的紧密耦合而在内部找不到 ld 很少失败。

    【讨论】:

      【解决方案3】:

      您可以将 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 编译中用作后端这一事实(谷歌对此有大量信息)或者 Clang 本身无法将您的代码链接到可执行文件或库中的事实。如上所述,您仍然需要系统的链接器。

      【讨论】:

      • 顺便说一句,“将 Clang 与 MinGW 一起使用”是什么意思?在 Visual Studio 中使用 Clang 对我来说很有意义;通过这个我知道我可以在 Visual Studio 中编写我的程序,但是当我命令它构建我的项目时,它会选择 Clang 编译器来编译我的项目。但是MinGW没有这样的事情。 MinGW 是编译器本身,而不是 IDE。
      • @Nawaz:我的意思是 MSVC(在工具链中,实际上只有链接器+库/标题)。如果您使用 MinGW(及其 Win32 API 标头和库),您将使用它的链接器 ld.exe。如果您将 MSVC 与 Clang 一起使用,您将使用 MSVC 的 link.exe 和 Windows SDK 标头和库,它们的功能更完整。我的项目管理不是基于 IDE,而是使用跨平台构建工具(目前是 CMake 或 qmake)。我使用 MSVS 和 MSVC 来指定工具链本身,很抱歉造成混淆。这当然并不意味着您不能将 Visual Studio IDE 与 Clang 一起使用...
      • (续)我只是担心它不会像您期望的那样工作,因为 MS 一点也不关心其他编译器。我只知道使用 MS 构建工具的 Intel 编译器。无论如何,MinGW 业务中没有人关心 Visual Studio(如果您使用 GCC,您会自动被推送到更多跨平台代码,或者已经在以跨平台方式进行编码)。
      • @rubenvb:这是有用的信息。谢谢。和+1。 (天知道我最后一次投票发生了什么!可能是我的浏览器出了点问题!)。
      • @Nawaz:谢谢!值得一提的是,Windows 上的 Clang 还没有完全出现,但尤其是 x86(32 位)的东西应该可以正常工作。 x64 仍在进行中。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-19
      • 2020-04-17
      • 1970-01-01
      • 1970-01-01
      • 2010-09-19
      相关资源
      最近更新 更多