我正在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?
答案 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.xz
和llvm+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
。如果需要,可能仍需要从源代码构建。