Windows是否有预构建的clang库?

时间:2018-07-12 15:55:45

标签: windows dll clang

我正在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?

3 个答案:

答案 0 :(得分:4)

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

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

当前可用的版本为llvm+clang-6.0.0-win64-msvc-release.tar.xzllvm+clang-7.0.0-win64-msvc-release.tar.xz

还有详细的构建说明here

答案 1 :(得分:1)

对于任何想在其系统上安装libclang的人,choco llvm package似乎正确安装了libclang。我不能说这是否足以实际连接此库的C / C ++,但这对我来说很有效。

只需在提升的命令提示符或Powershell中运行此命令即可

choco install llvm

您可能需要运行refreshenv或打开一个新的控制台来查看工具。

就我而言,为了帮助未来的Google员工(因为在其他地方找不到简单的答案),我的问题特别是在尝试编译使用onig_sys条板箱的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成功完成

答案 2 :(得分:-1)

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

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