【问题标题】:Is there a pre-built clang library for Windows? [closed]是否有适用于 Windows 的预建 clang 库? [关闭]
【发布时间】:2018-12-20 22:38:30
【问题描述】:

我正在使用 Linux 上的 clang 库开发一个工具,我想将此工具移植到 Windows。

在 Linux 上,我可以使用 apt-get clang-6.0-dev 从 LLVM 存储库安装 Clang,然后只需将我的工具与 -lclang 链接。我不需要自己编译 LLVM 和 Clang。

有没有办法在 Windows 上做类似的事情,还是我需要自己编译 Clang 库?

我能找到的所有与 Clang 相关的帖子都是关于使用 clang 作为工具,而不是作为库。

我已经从 LLVM 网站安装了 Clang 和 LLVM 的预构建可执行文件,它们与 mingw 结合使用非常好。但是,Windows 的下载似乎没有将 Clang 库作为单独的文件 (DLL) 包含在内,并且使用 -lclang 链接会导致链接器错误。

如果没有针对 Windows 的预构建库,最好的方法是什么,最好使用 mingw 而不是 MSVC?

【问题讨论】:

标签: windows dll clang


【解决方案1】:

Zig 的 github 页面上有预构建的 LLVM/clang 二进制文件:
https://github.com/ziglang/zig/wiki/Building-Zig-on-Windows

您可以在bin 文件夹中找到libclang.dll

目前可用的版本有:

  • llvm+clang-6.0.0-win64-msvc-release.tar.xz
  • llvm+clang-7.0.0-win64-msvc-release.tar.xz
  • llvm+clang-8.0.0-win64-msvc-release.tar.xz
  • llvm+clang-9.0.0-win64-msvc-release.tar.xz
  • llvm+clang+lld-10.0.0-x86_64-windows-msvc-release-mt.tar.xz

还有详细的构建说明,here

【讨论】:

  • 此评论时的链接仅显示 llvm+clang-9.0.0,请您指导我到 6.0.0 版本吗?我的 Haskell 编译器需要这个特定版本。
  • @AboAmmar 6.0.0 zip 仍然可用 - 只需将当前 zip 名称替换为下载链接中上面的名称即可
  • 谢谢@valiano,此链接有效:ziglang.org/deps/llvm+clang-6.0.0-win64-msvc-release.tar.xz,您拯救了我的一天。
  • 谢谢!为我节省了一些工作:p
【解决方案2】:

对于遇到此问题并只想在他们的系统上安装 libclang 的任何人,choco llvm package 似乎可以正确安装 libclang。我不能说这是否足以实际链接到这个 C/C++ 库,但它适用于我的情况。

只需在提升的命令提示符或 powershell 中运行它:

choco install llvm

您可能需要运行 refreshenv 或打开一个新控制台以获取工具来获取此信息。

就我而言,为了帮助未来的谷歌员工(因为我在其他地方找不到简单的答案),我的问题特别是在尝试编译一个使用 onig_sys crate 的 Rust 项目时:

   Compiling onig_sys v69.2.0
error: failed to run custom build command for `onig_sys v69.2.0`

Caused by:
  process didn't exit successfully: `[redacted]\target\debug\build\onig_sys-b53394f57ee5e2c5\build-script-build` (exit code: 101)
--- stdout
cargo:warning=couldn't execute `llvm-config --prefix` (error: The system cannot find the file specified. (os error 2))
cargo:warning=set the LLVM_CONFIG_PATH environment variable to a valid `llvm-config` executable

--- stderr
thread 'main' panicked at 'Unable to find libclang: "couldn\'t find any valid shared libraries matching: [\'clang.dll\', \'libclang.dll\'], set the `LIBCLANG_PATH` environment variable to a path where one of these files can be found (invalid: [])"', src\libcore\result.rs:1188:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.

安装llvm后,cargo build安装成功

【讨论】:

    【解决方案3】:

    LLVM 现在在其网站上提供预构建的二进制文件:https://releases.llvm.org/download.html

    注意:Windows 预构建的二进制文件中不存在某些文件,例如 llvm-config。如果需要,您可能仍需要从源代码构建。

    【讨论】:

      猜你喜欢
      • 2012-09-20
      • 1970-01-01
      • 1970-01-01
      • 2010-11-09
      • 2011-04-06
      • 2011-05-08
      • 1970-01-01
      • 2015-07-04
      相关资源
      最近更新 更多