私はlibsoundioとRustプログラムをリンクしようとしています。私は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"]
しかし、それはまだだけではgccに"-l" "libsoundio"
を渡し、同じld: cannot find -llibsoundio
で失敗します。本当に明白な何かが欠けていますか?ドキュメントによって、これはうまくいくはずです。 rustc
で
たぶん私は何かが欠けていますが、それは動作するようには思えません。私の質問編集を参照してください。 – Timmmm
接頭辞 "lib"を削除しようとしてください: '-l soundio' – Lud
効果がありません。' .cargo/config'を使用していないようです。私はそれが '.libsoundio 'ビットと関係があると思うが、Cargoにビルド設定を表示させてデバッグするのは難しいようだ。 – Timmmm