1

boost の正規表現ライブラリで遊んでいたところです。ビルド プロセス中に、場所ライブラリ名を指定しなかったため、驚くべきことに次のエラーが発生しました。

LINK : fatal error LNK1104: cannot open file 'libboost_regex-vc100-mt-gd-1_47.lib'

ブーストライブラリの場所を設定したところ、エラーが消えました! ( libboost_regex-vc100-mt-gd-1_47.lib という名前については何も言いませんでした)
通常、ライブラリを自分のプロジェクトにリンクしたときに、その名前と場所を指定するのを忘れると、未解決の外部エラーが発生しました。ライブラリ名とその場所を指定する必要がありましたが、boost を使用することで、その必要がなくなりました。では、その理由は何ですか?インターフェイスを含めてその場所を指定するだけでよいライブラリを作成するにはどうすればよいですか?

4

1 に答える 1

1

自動リンクを参照してください。

ほとんどの Windows コンパイラとリンカーには、いわゆる「自動リンク サポート」があり、2 番目の問題は解消されます。Boost ヘッダー ファイルの特別なコードがコンパイラ オプションを検出し、その情報を使用して正しいライブラリの名前をオブジェクト ファイルにエンコードします。リンカーは、検索するように指示したディレクトリからその名前のライブラリを選択します。

于 2013-02-11T22:23:46.210 に答える