15

私と私のパートナーは、Subversion を介して C++ ソリューションを共有しています。

彼は Visual Studio 11 を使用しており、私は Visual Studio 2010 を使用しています。

彼が初めてコミットして更新した後、次のエラーが表示されます。

Error 31 error MSB8008: Specified platform toolset (v110) is not installed or invalid. Please make sure that a supported PlatformToolset value is selected.

また、ヘッダー ファイルで次のエラーが発生します#include <stdio.h>

error: cannot open source file "stdio.h"

これは互換性の問題だと思います。どうすればこれを解決できますか?

4

4 に答える 4

30

Visual Studio 11 には、プラットフォーム ツールセットを指定できるプロパティ オプションがあります。

Visual Studio 11 から新しいプロジェクトを作成する場合は、プラットフォーム ツールセット v110 が既定で使用されますが、Visual Studio 2010 で使用される v100 に変更できる場合。

ツールセット オプション

于 2012-04-23T10:22:50.920 に答える
3

Visual Studio 11 に保存された .sln および .vcxproj ファイルは、VS2010 と下位互換性がありません。それらに互換性があったとしても、最終的には、VS11 ではコンパイル可能だが VS10 ではコンパイルできないコードに出くわすことになります。

最良の (そしておそらく唯一の) 方法は、まったく同じ開発環境を使用することに同意することです。

于 2012-04-20T12:03:08.113 に答える
0

議論が少し遅れましたが、ソース管理を使用しているため、リポジトリからプロジェクト ファイルとソリューション ファイルを削除し、ソース コードのみを共有できます。明らかに、新しいモジュールなどをプロジェクトに追加する場合は、他のソリューションに手動で追加する必要がありますが、少なくともこの非互換性について心配する必要はありません。さらに詳しく知りたい場合は、コンパイラとリンカーのスイッチだけを使用して、コマンド ラインからアプリケーションをビルドできます。これは、リビジョン間の互換性がはるかに高い傾向にあります。最後に、Studio のバージョン間で互換性がある別のビルド ツール (MSBuild 以外) を使用できます。

ソリューション ファイルとプロジェクト ファイルを削除する場合は、元の YourApp.sln のコピーを YourApp.sln.2010 として保存することを検討してください。その後、将来のソリューションをシードするものがありますが、プロジェクトとソリューションの更新はすべて VS 2010 から行う必要があり、ファイルは .2010 バージョンにコピーされ、手動で維持されます。

SVN がパッチをサポートしている場合、または quilt を外部で実行する場合 (または、mercurial に切り替える場合は MQ 拡張機能を使用できます)、パッチ ファイルを作成して 2010 から 2011 に変換し、アップグレード パッチを削除できます。 (s) 同期前。

于 2012-07-30T18:45:58.570 に答える
0

Drake のソリューションは、ソリューション内のすべてのプロジェクトのプロパティが既に v100 に正しく設定されているため、うまくいきませんでした。ただし、うまくいった修正は、ビルドをクリーンアップし、ソース ファイルまたはプロジェクト ファイル以外のすべてのファイルを削除することでした。projname.vcxproj.userツールチェーンの設定がユーザー設定で何らかの形で上書きされた可能性があるため、おそらくそれを修正したファイルを削除していたと思います。

于 2012-11-20T12:39:54.010 に答える