Linux交叉编译Rust程序到Windows时出现lld-link无法打开blosc.lib的错误
Linux交叉编译Rust程序到Windows时出现lld-link无法打开blosc.lib的错误
嘿,我之前在Linux上交叉编译Rust到Windows、用到blosc库的时候,也碰到过一模一样的lld-link找不到blosc.lib的问题!折腾了好一阵才搞定,给你分享下我的解决步骤:
先把交叉编译的基础工具准备好,以Debian/Ubuntu为例,安装mingw-w64的工具链:
sudo apt install gcc-mingw-w64-x86-64给Rust添加Windows的编译目标:
rustup target add x86_64-pc-windows-gnu在项目根目录创建
.cargo/config.toml文件,配置交叉编译的链接器和归档工具:[target.x86_64-pc-windows-gnu] linker = "x86_64-w64-mingw32-gcc" ar = "x86_64-w64-mingw32-ar" [build] target = "x86_64-pc-windows-gnu"设置环境变量,让blosc的C构建脚本使用mingw的编译器:
export CC_x86_64_pc_windows_gnu=x86_64-w64-mingw32-gcc export CXX_x86_64_pc_windows_gnu=x86_64-w64-mingw32-g++调整
Cargo.toml里的blosc依赖,开启静态链接特性,这样会自动编译Windows版本的blosc静态库:blosc = { version = "0.8", features = ["static"] }最后执行交叉编译命令就行啦:
cargo build --target x86_64-pc-windows-gnu
要是你用的是其他Linux发行版,比如Fedora,记得把安装mingw工具链的命令换成对应的(比如dnf install mingw64-gcc)。另外如果还是有问题,可以检查下环境变量有没有生效,或者试试清理下cargo的缓存(cargo clean)再重新编译。
备注:内容来源于stack exchange,提问作者Jojo
相关产品推荐
相关产品推荐

