我想链接一个Rust程序libsoundio。我正在使用Windows,并有可用的GCC二进制下载。我喜欢这个链接,如果我把它放在同一个文件夹我的项目:如何在Rust中指定链接器路径?
#[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
。我错过了真正明显的东西吗?文件似乎表明这应该工作。
也许我失去了一些东西,但似乎并没有工作。看到我的问题编辑。 – Timmmm
尝试删除前缀“lib”:'-l soundio' – Lud
没有效果,就像它甚至没有使用'.cargo/config'。我怀疑这与'.libsoundio]'有点关系,但似乎没有办法让Cargo打印它的构建配置,所以很难调试! – Timmmm