Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使我的Rust程序链接到另一个glibc?_Rust_Linker_Cross Compiling_Glibc_Rust Cargo - Fatal编程技术网

如何使我的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,因此他们可能很好地掌握了如何最好地进行交叉编译。