如何使我的Rust程序链接到另一个glibc?
我有一个如何使我的Rust程序链接到另一个glibc?,rust,linker,cross-compiling,glibc,rust-cargo,Rust,Linker,Cross Compiling,Glibc,Rust Cargo,我有一个crosstool ng工具链用于i686 linux未知gnu,此工具链包含的glibc与主机中安装的glibc不同 我的libc.so.6的路径是: ~/x-tools/i686-unknown-linux-gnu/i686-unknown-linux-gnu/sysroot/lib 我如何告诉Cargo链接到此目录而不是系统目录中的glibc 我已经尝试了LD\u LIBRARY\u PATH,但它不起作用 有效的方法是在我的.cargo/config文件中设置以下内容: [ta
crosstool ng
工具链用于i686 linux未知gnu
,此工具链包含的glibc与主机中安装的glibc不同
我的libc.so.6
的路径是:
~/x-tools/i686-unknown-linux-gnu/i686-unknown-linux-gnu/sysroot/lib
我如何告诉Cargo链接到此目录而不是系统目录中的glibc
我已经尝试了LD\u LIBRARY\u PATH
,但它不起作用
有效的方法是在我的.cargo/config
文件中设置以下内容:
[target.i686-unknown-linux-gnu]
linker = "i686-unknown-linux-gnu-gcc"
但这将我的程序与GCC工具链联系起来,而不是与Clang联系起来。我想使用Clang并仅针对不同的glibc进行链接。正如kennytm指出的那样,我可以使用
.cargo/config
通过使用sysroot
参数来判断新的glibc
在哪里:
[target.i686-unknown-linux-gnu]
rustflags = ["-C", "link-args=--sysroot=/home/ebarreto/x-tools/i686-unknown-linux-gnu/i686-unknown-linux-gnu/sysroot"]
--sysroot
参数将包含自定义glibc
所在的my sysroot路径
我仍然认为这不是最实际的方法,但我不知道更好的方法。您是否尝试过在
.cargo/config
中更改rustflags
?您可能想在/r/rust(Reddit)上交叉发布问题,那里有几个用户进行交叉编译,其中必须选择另一个libc,因此他们可能很好地掌握了如何最好地进行交叉编译。