rlib の代わりに共有ライブラリを発行するようにRacerを変更しようとしています。
これを行うために、Cargo マニフェストcrate-type = ["dylib"]
のセクションに追加し、実行しました。これはうまく機能し、放出されました。[lib]
cargo build --lib
libracer.so
残念ながら、ライブラリの静的バージョンに依存する Racer バイナリをビルドできませんでした。実行中のcargo build
苦情:
Compiling racer v1.0.0 (file:///home/georgev/dotfiles/vim/bundle/racer)
error: cannot satisfy dependencies so `std` only shows up once
help: having upstream crates all available in one format will likely make this go away
error: cannot satisfy dependencies so `core` only shows up once
help: having upstream crates all available in one format will likely make this go away
error: cannot satisfy dependencies so `collections` only shows up once
help: having upstream crates all available in one format will likely make this go away
error: cannot satisfy dependencies so `rustc_unicode` only shows up once
help: having upstream crates all available in one format will likely make this go away
error: cannot satisfy dependencies so `alloc` only shows up once
help: having upstream crates all available in one format will likely make this go away
error: cannot satisfy dependencies so `libc` only shows up once
help: having upstream crates all available in one format will likely make this go away
error: cannot satisfy dependencies so `rand` only shows up once
help: having upstream crates all available in one format will likely make this go away
error: aborting due to 7 previous errors
Could not compile `racer`.
を に変更するcrate-type
と["dylib", "bin"]
、コンパイルが成功しました。ただし、cargo build --lib
共有ライブラリはもう発行しません (rlib のみ)。
ビルドしたいライブラリのタイプを指定しながら、そのライブラリを実行可能ファイルに含めるために静的にビルドできるようにするにはどうすればよいですか?