1

私は非常に奇妙な問題を抱えています。別のライブラリと静的にリンクする VS2012 のプロジェクトがあります。プロジェクトをビルドすると、すべて問題ありません。ただし、プロジェクトを再ビルドすると、リンクの問題で失敗します。ライブラリはコンパイルされていますが、ビルド中にコンパイルしません。 すべてをクリーンアップするか、以前のビルドの上にビルド/再ビルドしても違いはありません。ビルドは機能しますが、再構築はできません。

誰かが少なくとも手がかりを教えてくれますか?これら2つのコマンドの違いは何ですか? 問題の調査を開始する方法さえわかりません。

補足:

回答したすべての人へ - あなたはビルドとリビルドの違いを説明しようとしています。ありがとう、でも私はそれを知っています。あなたは、私が前に説明した事実を無視しています:

以前の結果を完全に消去し、OutDir を削除し、IntDir を削除し、コンパイルによって生成されたすべてのものを削除できます。still - ビルド作業、リビルドしない。

上記で説明したケースでは、初めてビルドする場合、ビルドとリビルドの違いは何ですか??

私がエラーを投稿しなかった理由は、.lib が見つからないという単純なリンク エラーであるためです。明らかにそうではありませんが。

次に例を示します。

1>C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\sal.h(2872): 警告 RC4005: '_ useHeader': 再定義 1>
1>C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\sal.h(2882): 警告 RC4005: '
_on_failure': 再定義 1>
1> ライブラリ D:\p4client\ProAudio\dev_main\ProAudio\XPlatform..\VisualStudioBuildProducts\WaveShell-DAE\Win32\Debug\Products\WaveShell-DAE.lib およびオブジェクト D:\p4client\ProAudio\dev_main\ProAudio\XPlatform の作成..\VisualStudioBuildProducts\WaveShell-DAE\Win32\Debug\Products\WaveShell-DAE.exp 1>DefaultSwap.obj : エラー LNK2019: 未解決の外部シンボル _ASI_UnregisterCustomByteSwapper@4 が関数で参照されています _RemoveByteSwapper 1>DefaultSwap.obj : エラー LNK2019: 未解決の外部シンボル _ASI_RegisterCustomByteSwapper@8 が関数で参照 _RegisterByteSwapper 1>PlugInLib.lib(PlugInUtils.obj) : エラー LNK2001: 未解決の外部シンボル _ imp _FicGestalt@8 1>PlugInLib.lib(CDSPProcess.obj) : エラー LNK2001: 未解決の外部シンボル _ imp_FicGestalt@8 1>PlugInLib.lib(CAdaptorPlugIn.obj): エラー LNK2001: 未解決の外部シンボル _ imp _FicGestalt@8 1>CShellProcessGroup.obj: エラー LNK2019: 未解決の外部シンボル _ imp _FicGestalt@8 関数で参照されている "public: __thiscall CShellProcessGroup ::CShellProcessGroup(void)" (??0CShellProcessGroup@@QAE@XZ) 1>CEffectTypeRTAS.obj: エラー LNK2001: 未解決の外部シンボル _ imp _FicGestalt@8 1>PlugInLib.lib(CProcessGroupInterface.obj): エラー LNK2001: 未解決の外部シンボル _ imp _FicGestalt@8 1>PlugInLib.lib(CProcessGroup.obj): エラー LNK2001: 未解決の外部シンボル _ imp _FicGestalt@8

ビルド(再ビルドではない) の実行中に、次の警告が表示されることを知っておくと役立つ場合があります。

1>C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\sal.h(2872): 警告 RC4005: '_ useHeader': 再定義 1>
1>C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\sal.h(2882): 警告 RC4005: '
_on_failure': 再定義 1>
1> ライブラリ D:\p4client\ProAudio\dev_main\ProAudio\XPlatform..\VisualStudioBuildProducts\WaveShell-DAE\Win32\Debug\Products\WaveShell-DAE.lib およびオブジェクト D:\p4client\ProAudio\dev_main\ProAudio\XPlatform の作成..\VisualStudioBuildProducts\WaveShell-DAE\Win32\Debug\Products\WaveShell-DAE.exp 1>PlugInLib.lib(C321ChipDSP.obj): 警告 LNK4099: PDB 'vc110_ib_2.pdb' が 'PlugInLib.lib(C321ChipDSP) で見つかりませんでした.obj)」または「D:\p4client\ProAudio\dev_main\ProAudio\VisualStudioBuildProducts\WaveShell-DAE\Win32\Debug\vc110_ib_2.pdb」にあります。デバッグ情報がないかのようにオブジェクトをリンクする\dev_main\ProAudio\VisualStudioBuildProducts\WaveShell-DAE\Win32\Debug\vc110_ib_3.pdb'; デバッグ情報がないかのようにオブジェクトをリンクする\dev_main\ProAudio\VisualStudioBuildProducts\WaveShell-DAE\Win32\Debug\vc110_ib_4.pdb'; デバッグ情報がないかのようにオブジェクトをリンクする

ありがとう!

4

4 に答える 4

0

「ビルド」は増分ビルドを行い、基本的にソリューション内の各プロジェクトを調べて、前回のビルド以降に変更があったかどうかを確認し、ある場合は再度ビルドします。

「再構築」は、すべてのクリーンアップを実行し、すべてをゼロから構築します。

編集:より詳細な回答リンク

于 2013-04-09T14:40:49.930 に答える
0

静的ライブラリが、ライブラリにリンクするプロジェクトと同じソリューション内の別のプロジェクトである場合、ビルド プロセスが最初にライブラリをビルドし、2 番目に他のプロジェクトをビルドするように、2 つのプロジェクト間に依存関係を設定する必要があります。

これを行うには、ソリューションを右クリックし、ポップアップ メニューから [プロジェクトの依存関係] を選択します。

于 2013-04-09T14:45:05.980 に答える