C++ のプロジェクトのプロパティを開き、構成プロパティ->ライブラリアン->全般において
「出力ファイル」 Output.lib
「追加の依存ファイル」 libAAA.lib
「追加のライブラリディレクトリ」 ../lib/libAAA/debug
と設定すると、ライブラリアン->コマンドラインが
/Out:”Output.lib” /LIBPATH:”../lib/libAAA/debug” libAAA.lib 絶対パス¥libAAA.lib
となり、同じ libAAA.lib が2回リンクされるようになってしまいます。
同じソースコード、プロジェクト・ファイル、ソリューションを同僚の VisualStudio で開くと、2つめの余計な「絶対パス¥libAAA.lib」は付きません。
VisualStudio 自体の設定に何か問題があると思うのですが、調べるべきところを教えてください。
推測で書きます。間違っていたらごめんなさい。
ファイルを相対パスによる参照(相対参照)の場合と絶対パスによる参照(絶対参照)の場合に分かれることが.NETではよくあります。
この場合、相対パスのlibAAA.libと絶対パスのlibAAA.libがあるので、可能性としてはlibAAA.libが複数存在することが考えられます。あるいは、リンカオプションかその他のプロパティのどこかで絶対参照してしまっている可能性も考えられます。
あと、ヘルプと同僚のマシンの環境を見比べながら、頑張って解決してください!お力になれたら嬉しいです。
もう半年も前の質問ですが、自力で解決しましたので「いわし」に書いておきます。
この現象が起きるか起きないかの分かれ目は、「ライブラリ名を展開した絶対パスにハイフン”-”が入っているか、いないか?」でした。
ハイフンが入っていると、私が書いたような現象が起きます。
同じソースコードを同僚と共有しているのですが、私のユーザ名にはハイフンが入っており、同僚のユーザ名にはありません。
それゆえに、ユーザ名を含むディレクトリの下にソースツリーを置くと、ユーザによって問題が起きたり起きなかったり、という奇怪な現象が起きていたのでした。
バグか仕様か分かりませんが、原因が分かったあとで検索してみても、この現象に関する記述は見つかりませんでした。
いやぁ、まいった。