7

マルチプロジェクトアプリケーションをリリースモードのVisuasC++10でビルドしようとしています。
次のリンクエラーが発生します:
2>すべての出力が最新です。 2> PidAppLib.lib(ThreadWin32.obj):エラーLNK2011:プリコンパイルされたオブジェクトがリンクされていません。イメージが実行されない可能性があります
2>C:\ infinite_memories_svn \ projects \ sw \ NewPidTools \ PidWriter \ Release \ PidLabler.exe:致命的なエラーLNK1120:1未解決の外部
2>
2>ビルドに失敗しました。

どのオブジェクトが未解決であるかをどのように知ることができますか?
ThreadWin32.objは、インターネットからダウンロードした外部ライブラリです。

4

2 に答える 2

6

Ok。
私は問題を解決しました。
私は2つのライブラリを持っています。たとえばa.libとb.lib、そしてプロジェクト、calibはb.libを使用するので、a.libのライブラリアン依存関係ではb.libを追加し、cはa.libを使用するので依存関係に追加しました。
デバッグでは機能しますが、リリースではcの依存関係にb.libも追加する必要があります。奇妙ですが、それは問題を解決しました

于 2012-04-19T08:03:36.170 に答える
3

リファクタリングしていた大規模なプロジェクトでこのエラーが発生しました。リファクタリングプロセス中に、プロジェクト全体をビルドしなくても、個々のソースファイルをコンパイルして、行った変更を確認することがありました。プロジェクトの構成によっては、これにより、プロジェクトのビルド時に通常出力される場所とは異なるディレクトリに.objファイルが出力される可能性があります。私の場合、手動でコンパイルされたソースファイルの.objファイルは、中間ビルドディレクトリではなくソースコードディレクトリに出力されました。

これの副作用は、プロジェクト全体をビルドするときに、手動でコンパイルされたソースファイルが、他の場所で必要な変更(プリコンパイル済みヘッダーファイルの再コンパイルが必要な変更など)であっても、再コンパイルされない場合があることです。

私にとっての解決策は、個々のソースファイルを手動でコンパイルすることによって生成されたすべての.objファイルを手動で削除することでした。プロジェクトの構成によっては、プロジェクトでCleanを実行しても機能する場合があります。

于 2015-08-20T13:29:35.147 に答える