0

サード パーティの静的ライブラリに依存する Visual C++ 2003 プロジェクトがあります。私のビジュアル C++ プロジェクトもスタティック ライブラリにコンパイルされます。プロジェクト プロパティを編集し、サード パーティ ライブラリのディレクトリを追加のライブラリ ディレクトリ (./LibDir など) に追加し、ライブラリの名前を追加の依存関係 (3rdParty.lib など) に追加して、プロジェクトからサード パーティ ライブラリを参照しました。

私のマシンでは、これは期待どおりに機能し、これをリンカー コマンド ラインに追加します。

/LIBPATH:"LibDir" 3rdParty.lib

私の同僚のマシンでは、これをリンカー コマンド ラインに追加します。

/LIBPATH:"LibDir" 3rdParty.lib "LibDir\3rdParty.lib"

これにより、サード パーティのライブラリが 2 回リンクされ、多くのエラーと警告が発生します。

この問題はこのライブラリに固有のものではありません。同僚のマシンにこの方法で含めようとするサードパーティのライブラリはどれも、コマンド ラインに 2 回追加されてしまうようです。

彼のマシンと私のマシンの動作の違いの原因は何ですか?

更新: これを 3 台目のマシンでテストしたところ、同僚のマシンと同じ動作が示されました。つまり、追加の依存関係を参照すると、リンカー コマンド ラインに 2 回追加されます (この違いは、まったく同じプロジェクトを開いたときに発生します)。各マシン上のファイル)。

私のマシンと他の 2 つのマシンの唯一の違いは、数年前に自分のマシンに VC++ 2003 をインストールし、今週他の 2 つのマシンにインストールしたことです。

また、これは私のプロジェクトがライブラリにコンパイルされている場合にのみ発生するようです.exeにコンパイルされている場合、サードパーティのライブラリはリンカーコマンドラインに一度だけ追加されます.

何か案は...?

4

2 に答える 2

0

同じ問題があり、含まれているライブラリを、スペースを含まないディレクトリ構造に移動しました。それはうまくいきました。

于 2009-12-17T19:26:45.020 に答える
0

追加ディレクトリの Your friends プロジェクトに不要な依存関係の継承がないか確認してください。

Your 3rdParty.lib を除外してみてください。プロパティに $(ProjDir) または同様の追加の違いがあるかどうかを確認してください。

コンパイラ/リンカーからコマンドラインを投稿できますか (これはプロパティにあります)。

于 2009-09-22T12:32:04.393 に答える