背景
在使用rust編譯二進制程序后放在, 其他Linux主機運行時, 有時候因為,運行的主機的libc庫版本低于編譯機器上程序libc庫版本. 導(dǎo)致程序運行會報錯.
解決方案
網(wǎng)絡(luò)上有的給出的結(jié)局方案是降低運行環(huán)境的libc庫的版本. 這種方案顯然是不可取的.
另一種解決方案是: 將依賴的libc庫都打進運行程序中, 這樣就可以擺脫對libc庫的依賴.
rustup target add x86_64-unknown-linux-musl
cargo build --target x86_64-unknown-linux-musl
1
2
衍生問題
但是在編譯過程中, 在我的環(huán)境上出現(xiàn)
error: failed to run custom build command for ring v*****
1
在stackoverflow上找到答案是, 這是因為缺少musl-gcc工具, 需要在編譯環(huán)境安裝musl-gcc,
apt install musl-tools
1
至此所有問題解決, 可以正常編譯.