【发布时间】:2017-04-11 12:18:26
【问题描述】:
我正在尝试将 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"]
但它仍然只将"-l" "libsoundio" 传递给gcc,并以相同的ld: cannot find -llibsoundio 失败。我错过了一些非常明显的东西吗?文档似乎表明这应该可行。
【问题讨论】:
标签: rust static-linking dynamic-linking rust-cargo