VS2010 で 2 つのプロジェクトを使用したソリューションがあります。
メイン プロジェクトは、静的ライブラリとしてビルドされた 2 番目のプロジェクトを参照し、依存しています。2 つ目は、ソリューション内でビルドされていない静的なサードパーティ ライブラリを使用しますが、2 つ目のプロジェクトのリンカー設定でのみ参照されます。
ソリューションを生成しようとすると、VS は失敗し、サードパーティ ライブラリが見つからなかったことを示します。2番目のプロジェクトのコンパイルされた静的ライブラリは十分に大きく、サードパーティのライブラリを「含んでいる」ように見えるため、理由がわかりません。
これまでのところ、私の問題に対する解決策は 2 つしかありません。
- サードパーティ ライブラリをメイン プロジェクトのリンカー設定に追加する
- サードパーティのライブラリ全体をソリューションに含めてコンパイルします
この問題を解決する他の方法はありますか?
編集:メインプロジェクトのコンパイル時に問題が発生し、コンパイラが出力します:リンク:致命的なエラーLNK1104:ファイル 'wxbase29u.lib'を開けません(2番目のプロジェクトでwxWidgetを使用しています)
EDIT2 :リンクに -verbose オプションを付けましたが、サードパーティのライブラリへの参照が Project2.lib に実際にまだ存在しているようです:
Searching ..\MyAppConfig\Bin\Win32\Release\MyAppConfig.lib :
"public: static void __cdecl ConfigWindow::Open(void)" (?Open@ConfigWindow@@SAXXZ) found
Referenced in main.obj
Loaded MyAppConfig.lib(configWindow.obj)
/DEFAULTLIB:wxbase29u processed
/DEFAULTLIB:wxbase29u_net processed
/DEFAULTLIB:wxbase29u_xml processed
/DEFAULTLIB:wxregexu processed
/DEFAULTLIB:wxexpat processed
/DEFAULTLIB:wxjpeg processed
/DEFAULTLIB:wxpng processed
/DEFAULTLIB:wxtiff processed
/DEFAULTLIB:wxzlib processed
...
...
LINK : fatal error LNK1104: cannot open file 'wxbase29u.lib'
面白いことに、私は Project2 で他の wxWidgets ライブラリを使用していませんが、ビジュアル スタジオはそれらすべてを検索しているようです :/