glibc編譯
發布時間: 2023-01-30 02:37:25
① 【Rust交叉編譯】cross使用較低版本的glibc
眾所周知,glibc已經成為了linux二進製程序在各種發行版之間不兼容的重要因素了,究其原因,是glibc的版本兼容性機制。比如在高版本glibc的Linux機器上編譯和鏈接的二進制,在低版本glibc的Linux運行會報如下錯誤:
並且,glibc做靜態鏈接時會出現比較奇怪的問題(nss等),所以各發行版一致不推薦glibc靜態鏈接。那麼目前比較好的方案是,需要發行的應用,在比較低版本的glibc做編譯和鏈接。
而Rust官方提供了 cross 這個工具做交叉編譯的工作,而常用的taget x86_64-unknown-linux-gnu 的glibc版本為2.15,對於某些老到掉牙的發行版來說,可能還是會有兼容性問題,所以我基於Centos6打包了一個鏡像: https://hub.docker.com/repository/docker/jmjoy/cross ,內置的glibc版本為2.12。
使用方法:
在Cross.toml中:
② linux編譯安裝glibc-2.17
這個其實應該找一個舊版本的ntfs-3g,版本太新
另外,不要隨便編譯安裝glibc,如果你新編譯的glibc覆蓋了系統中的,不能保證你的系統還能正常使用
③ 怎麼查看交叉編譯工具鏈是glibc
在編輯工具當中我們看一下具體的連接操作方式,然後進入高級查看模式,就可以看到是否是glibc操作模式。
熱點內容
