0

VS2010 で 2 つのプロジェクトを使用したソリューションがあります。

メイン プロジェクトは、静的ライブラリとしてビルドされた 2 番目のプロジェクトを参照し、依存しています。2 つ目は、ソリューション内でビルドされていない静的なサードパーティ ライブラリを使用しますが、2 つ目のプロジェクトのリンカー設定でのみ参照されます。

ソリューションを生成しようとすると、VS は失敗し、サードパーティ ライブラリが見つからなかったことを示します。2番目のプロジェクトのコンパイルされた静的ライブラリは十分に大きく、サードパーティのライブラリを「含んでいる」ように見えるため、理由がわかりません。

これまでのところ、私の問題に対する解決策は 2 つしかありません。

  1. サードパーティ ライブラリをメイン プロジェクトのリンカー設定に追加する
  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 ライブラリを使用していませんが、ビジュアル スタジオはそれらすべてを検索しているようです :/

4

1 に答える 1

2

プロジェクトをセットアップする方法は次のとおりです。

プロジェクト 1 (メイン)

Additional dependencies: Project2.lib

プロジェクト 2

Additional dependencies: ThirdParty.lib

ビルド順: プロジェクト 2 -> プロジェクト 1

プロジェクトがそのようにセットアップされていて、リンクされていない場合は、ライブラリへのパスが正しく設定されていないことを意味します (「追加のインクルード ディレクトリ」の下)。したがって、プロジェクトの追加の依存関係が正しく設定されていること、およびインクルード ディレクトリが必要なライブラリが配置されている場所を指していることを確認してください。

于 2012-07-25T20:38:20.183 に答える