我怎样才能使我的 Rust 程序 link 成为另一个 glibc?
How can I make my Rust program link to another glibc?
我有一个 crosstool-ng
用于 i686-linux-unknown-gnu
的工具链,这个工具链包含一个与我的主机中安装的不同的 glibc。
我的 libc.so.6
的路径是:
~/x-tools/i686-unknown-linux-gnu/i686-unknown-linux-gnu/sysroot/lib
我如何告诉 Cargo link 到这个目录而不是系统目录中的 glibc?
我已经试过了LD_LIBRARY_PATH
,但是不行。
有效的方法是在我的 .cargo/config
文件中设置:
[target.i686-unknown-linux-gnu]
linker = "i686-unknown-linux-gnu-gcc"
但是 link 是我使用 GCC 工具链而不是 Clang 的程序。我想使用 Clang 和 link 来对抗不同的 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
.
所在的我的 sysroot 的路径
我仍然认为这不是最实用的方法,但我不知道更好的方法..
我有一个 crosstool-ng
用于 i686-linux-unknown-gnu
的工具链,这个工具链包含一个与我的主机中安装的不同的 glibc。
我的 libc.so.6
的路径是:
~/x-tools/i686-unknown-linux-gnu/i686-unknown-linux-gnu/sysroot/lib
我如何告诉 Cargo link 到这个目录而不是系统目录中的 glibc?
我已经试过了LD_LIBRARY_PATH
,但是不行。
有效的方法是在我的 .cargo/config
文件中设置:
[target.i686-unknown-linux-gnu]
linker = "i686-unknown-linux-gnu-gcc"
但是 link 是我使用 GCC 工具链而不是 Clang 的程序。我想使用 Clang 和 link 来对抗不同的 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
.
我仍然认为这不是最实用的方法,但我不知道更好的方法..