在与Rust

时间:2015-12-04 07:00:05

标签: rust dynamic-linking rust-cargo

我正在Rust中构建二进制可执行文件,它需要链接到本机库,比如foo.afoo.a包含符号void bar(void),我想将其作为回调函数公开给动态链接器,该函数可以由dlopen样式的动态加载库中的函数调用。

如果我们使用ld来源,则可以-rdynamic提供C

gcc -rdynamic -o a_dynamic main.c foo.c

在Rust中这样做的正确方法是什么?我尝试在cargo:rustc-flags=-rdynamic中使用build.rs,以及

#![feature(link_args)]
#[link_args = "-rdynamic"]

似乎都没有效果。

1 个答案:

答案 0 :(得分:2)

截至今天,Rust工具链不鼓励将任意标志传递给链接器。我们可以做的最接近的方法是使用cargo rustc并手动添加链接参数。

cargo rustc -- -C link-args='-rdynamic'