gpt4 book ai didi

rust - 如何通过链接器-rlink参数?

转载 作者:行者123 更新时间:2023-12-03 11:47:26 25 4
gpt4 key购买 nike

我正在尝试与cross交叉编译一个rust项目。我的项目取决于libcurl。链接器可以找到libcurl .so,但找不到它所依赖的库:
我在跑:

cross build -vv --target=arm-unknown-linux-gnueabihf
这给了我:
  = note: /usr/arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/8.3.0/../../../../arm-linux-gnueabihf/bin/ld: warning: libnghttp2.so.14, needed by /usr/lib/arm-linux-gnueabihf/libcurl.so, not found (try using -rpath or -rpath-link)
我已经确认其寻找的库存在:
root@80a13d68ad84:/# find /usr/lib -name "libnghttp2.so.14"
/usr/lib/x86_64-linux-gnu/libnghttp2.so.14
/usr/lib/arm-linux-gnueabihf/libnghttp2.so.14
我已经阅读了有关rust build脚本 here的信息,可以在其中向库搜索路径添加路径,但这并不能解决问题,这是我的build.rs的样子:
fn main() {
println!("cargo:rustc-link-search=native=/usr/lib/arm-linux-gnueabihf");
}
该错误提示您使用-rpath或-rpath-link,那么如何在rust中配置rpath?还是有其他方法可以解决此问题?

最佳答案

您可能可以通过使用类似以下的环境变量来指定链接器参数

RUSTFLAGS="-C link-arg=--rpath=..."
Cargo允许在配置文件中放置相同类型的标志(请参阅 here),但我不确定cross是否对类似内容具有相同的支持。

关于rust - 如何通过链接器-rlink参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64835913/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com