特定のクローズドソースC++APIを使用する必要があるアプリケーションがあります。このAPIは、Boostの一部、バイナリライブラリファイルなどとともに配布されます。私は自分のコードでBoostを使用するのが好きです。Boostのすべての部分が配布されていないため、Boostのバージョンを使用することはできません。どうすればいいですか?ターゲットプラットフォームはLinuxであり、最終的にはWindowsでもあります。
- APIの境界を越えてBoostオブジェクトを渡しません。
- コードがブーストヘッダーを使用し、APIのコードがブーストヘッダーを使用するように、オブジェクトファイルにコンパイルできます。この部分は簡単に思えます。
- 取得できないもの:コードをBoostライブラリファイルにリンク する方法、およびAPIのコードをBoostライブラリファイルにリンクする方法。APIの周りに独自のラッパー(ヘッダーにBoostが含まれていないラッパー)をダイナミックライブラリにコンパイルする必要がありますか?(これがリンクを作成するために考えられる唯一の方法です。APIのBoostライブラリファイルのシンボルは、Boostライブラリファイルのシンボルと同じである必要があります。2段階でリンクを実行する必要があります。唯一の方法です。プログラムの一部をリンクすることができますが、残りはダイナミックライブラリを作成することですよね?)