作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个用于 i686-linux-unknown-gnu
的 crosstool-ng
工具链,这个工具链包含一个与我的主机中安装的不同的 glibc。
我的 libc.so.6
的路径是:
~/x-tools/i686-unknown-linux-gnu/i686-unknown-linux-gnu/sysroot/lib
我如何告诉 Cargo 链接到这个目录中的 glibc 而不是系统目录中的 glibc?
我已经尝试过 LD_LIBRARY_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
所在的我的 sysroot 的路径。
我仍然认为这不是最实用的方法,但我不知道更好的方法..
关于rust - 如何让我的 Rust 程序链接到另一个 glibc?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41901024/
我是一名优秀的程序员,十分优秀!