我正在尝试将一个Rust程序与libsoundio链接起来。我在使用Windows,并有GCC二进制文件可供下载。如果我将它放在与我的项目相同的文件夹中,我可以像这样进行链接:
#[link(name = ":libsoundio-1.1.0/i686/libsoundio.a")]
#[link(name = "ole32")]
extern {
fn soundio_version_string() -> *const c_char;
}
但我真的想要指定#[link(name = "libsoundio")]
甚至是#[link(name = "soundio")]
,然后在其他地方提供链接器路径。
我在哪里可以指定该路径?
我尝试了以下rustc-link-search
建议:
#[link(name = "libsoundio")]
#[link(name = "ole32")]
extern {
fn soundio_version_string() -> *const c_char;
}
并在.cargo/config
文件中:
[target.i686-pc-windows-gnu.libsoundio]
rustc-link-search = ["libsoundio-1.1.0/i686"]
rustc-link-lib = ["libsoundio.a"]
[target.x86_64-pc-windows-gnu.libsoundio]
rustc-link-search = ["libsoundio-1.1.0/x86_64"]
rustc-link-lib = ["libsoundio.a"]
但是它仍然只向gcc传递"-l" "libsoundio"
,并且出现相同的ld:cannot find -llibsoundio
错误。我是否错过了一些非常明显的东西?文档似乎表明这应该可以工作。