20

Visual Studio 2010 でgtestをビルドしようとしています。ソリューション ファイルを変換した後、ビルドしようとしましたが、次の警告メッセージが表示されました。

Warning 1   warning MSB8012: 
TargetPath(C:\Users\sucho\Desktop\gtest-1.5.0\msvc\gtest/Debug\gtest.lib) does not match
the Library's OutputFile property value (C:\Users\sucho\Desktop\gtest-1.5.0\msvc\gtest\
Debug\gtestd.lib).

This may cause your project to build incorrectly. 
To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property
values match the value specified in %(Lib.OutputFile).  
C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets

メッセージには、で指定されたプロパティ値とともに、変数$(OutDir)$(TargetName)およびをセットアップする必要があることが示されています。$(TargetExt)%(Lib.OutputFile)

Visual Studio (特に VS 2010) でそれを行うにはどうすればよいですか?

4

7 に答える 7

29

分かった。gtest プロジェクトを右クリックし、[プロパティ]、[構成プロパティ]、[全般] の順にクリックします。デバッグ構成が選択されていることを確認します (左上のコンボ)。[ターゲット名] プロパティを次のように変更します

 $(ProjectName)d

名前を gtest から gtestd に変更するために追加された「d」に注意してください。それ以外の場合、警告は無害です。

于 2011-01-10T20:20:53.827 に答える
8

誰も正しい答えを持っていないと思います。私はこの方法で解決しました:プロジェクトのプロパティページで、&がlinker->General->Output file一致するかどうかを確認します。configuration properties->General->target nameconfiguration properties->General->target extension

もちろん、「d」を追加する必要はありませんInherit from parent or project defaults。3 つの変数すべてに対して、より単純に に設定します。

例:

Linker → General → Output File = "myproject.exe"

それから:

Configuration Properties → General → Target Name = "myproject"

configuration properties → General → Target Extension = ".exe"
于 2014-05-13T00:34:59.873 に答える
4

警告は偽りです。Google Test を使用していると仮定すると、問題なく動作します。

ただし、それをなくすことはできます。問題のあるプロジェクトを右クリックし、プロパティを選択します。左側のツリー ビューで [Librarian] を選択し、右側の [出力ファイル] 項目を、出力ファイルの横にあるボックスをクリックして変更し、[親またはプロジェクトのデフォルトから継承] を選択します。

于 2011-01-10T20:16:11.020 に答える
2

この種のエラーは通常、古いプロジェクトを新しいバージョンの Visual Studio にアップグレードするとき (VS2010 の場合など) に発生し、プロジェクト設定が手動で変更された場合 (実行可能ファイル名の変更など) にも発生します。VS2010 がこれらのマクロ$(ProjectName) $(TargetName) $(OutDir) $(TargetExt)を使用してリリース/デバッグ出力を制御していることはわかっていますが、それらをどこで変更すればよいかはよくわかりません。通常は、[プロジェクト] >> [プロパティ] から出力ファイルの名前を直接変更します。これは、デバッグ ビルドとリリース ビルド用に出力ファイルを個別に変更する必要があることを意味します。依存関係がある場合は、This may cause your project to build incorrectly..

これらのマクロ/プロパティは VS2010 の既定値ですが、メモ帳で編集して .vcproj ファイルに自分で設定できます。最初に .vcproj ファイル内のプロパティを最初に検索し、存在する場合はその値を変更し、存在しない場合は以下のように定義することに注意してください。

  <PropertyGroup Label="My Values">
    <ProjectName>New_Project_Name</ProjectName>
  </PropertyGroup>

上記では、<property group>これらの値を保持するために new を定義しましたが、どこでも定義できます。これをファイルの先頭でデバッグ/リリース構成グループの直後に定義して、どこでも見えるようにします。プロジェクトのプロパティを正しく使用するには、プロジェクトのプロパティが適切に設定されていることを確認してください (VS2010 の既定の設定である必要があります)。それらを変更した場合は、新しいテスト プロジェクトからコピーする必要があります。もちろん、値を設定したい他のマクロを上記のグループに追加することもできます。

プロジェクトのプロパティを使用して、このマクロの新しい値を確認することもできます。たとえば、[構成プロパティ] >> [一般] をクリックし、[ターゲット名] ボックスをクリックします。編集を選択します。ボタンのあるダイアログボックスが表示されます'MACROS >>'。それをクリックすると、各マクロの値が表示されます。.vcproj ファイルで設定した新しい値が正しく反映されます。

于 2014-02-20T15:42:43.363 に答える
1

Hans Passant が投稿したように、TargetName プロパティを手動で変更する必要があります。これは、VS2005/2008 と VS2010 で異なります。http://social.msdn.microsoft.com/Forums/en-US/vcprerelease/thread/3c03e730-6a0e-4ee4-a0d6-6a5c3ce4343cを参照してください。

于 2013-03-27T03:14:16.883 に答える