¿Cómo especifico la ruta del enlazador en Rust?
Estoy tratando de vincular un programa Rust conlibsoundio. Estoy usando Windows y hay una descarga binaria de GCC disponible. Puedo vincularlo así si lo pongo en la misma carpeta que mi proyecto:
#[link(name = ":libsoundio-1.1.0/i686/libsoundio.a")]
#[link(name = "ole32")]
extern {
fn soundio_version_string() -> *const c_char;
}
Pero realmente quiero especificar#[link(name = "libsoundio")]
o incluso#[link(name = "soundio")]
y luego proporcione una ruta de enlace en otro lugar.
¿Dónde puedo especificar esa ruta?
Probé elrustc-link-search
sugerencia de la siguiente manera:
#[link(name = "libsoundio")]
#[link(name = "ole32")]
extern {
fn soundio_version_string() -> *const c_char;
}
Y en.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"]
Pero todavía solo pasa"-l" "libsoundio"
a gcc y falla con el mismold: cannot find -llibsoundio
. ¿Me estoy perdiendo algo realmente obvio? Los documentos parecen sugerir que esto debería funcionar.