如何链接C库而不调用其函数之一?

时间:2019-04-28 03:29:42

标签: rust linker ffi

我想与-lm链接。现在,我正在这样做:

let _link_lm = f64::sin(3.0);

我尝试将其放入.cargo/config

[build]
rustflags = ["-C", "link-args=-lm"]

这不会动态链接库。 另外,在构建脚本中使用cargo:rustc-link-lib=m与调用cargo rustc -- -lm相同,两者也不起作用。 我检查该库是否未与ldd链接。

链接库很重要,因为这是针对JIT编译器的,它可以通过使用dlsym获取这些函数来调用这些函数。

如何在不调用其中一个函数的情况下链接到该库?

1 个答案:

答案 0 :(得分:1)

事实证明,rustc-Wl,--as-needed调用链接器,所以对我来说解决方案是禁用此选项:

[build]
rustflags = ["-C", "link-arg=-Wl,--no-as-needed", "-C", "link-arg=-lm"]