0

コードには、memoryを含むvectorが含まれています。これにはMicrosoftのintrin.hが含まれていますが、intrin.hが含まれています。したがって、memoryは、システム1ではなくintrin.hを選択し、コンパイルに失敗します。Visual C++ヘッダーファイルとのファイル名競合の回避策を模索しています

私たちのintrin.hとMicrosoftの両方は何年も前からありましたが、VS 2010には新しい依存関係が導入されています。私たちのintrin.hを移動したり名前を変更したりするのは苦痛になります。

MSVCが私たちの前にシステムのインクルードディレクトリを見るように説得する方法はありますか?むしろ

#include <intrin.h> 

作品より

#include "intrin.h" 

を、私は自分のVisual Studio環境を変更(およびそれらがサービスの顔に変更保つために持ってチーム全体をしたくない:回答を編集memoryパックなど)

他にもこれを回避する方法はありますか?

答えて

0

システムのインクルードディレクトリをディレクトリの前のインクルードパスに追加するのはどうですか?

+0

intrin.hのコピーが必要なコードが壊れているようです。 –

+0

@ニール:良いアイデアだけど、VSは私にそれをさせてくれない! "$(VCInstallDir)include"をインクルードパスに追加すると、VSはそれを "。\ $(VCInstallDir)include"に変更し、失敗します。フルパス(少し厄介です)を入れても相対パスに変更されますが、それは誰かが別のディレクトリ深度にプロジェクトをチェックアウトすると失敗します。 Grr! VSは自分の利益のためにあまりにも賢いです! – RichieHindle

+0

@sean:いいえ、それはうまくいくでしょう。なぜなら、いくつかのコードにはintrin.hが1つ必要であり、いくつかのコードにはもう一方のコードが必要なためです。どちらが選択されるかを制御する方法があれば、それを必要とするコードに選択的に適用できます。 – RichieHindle

関連する問題