プロジェクトの開発に Visual Studio 2012 を使用しており、Visual Studio 2010 もインストールしています。これにより、Visual Studio 2012 (プロジェクト プロパティ) で VC++10 コンパイラを使用するオプションが提供されますが、Visual C++ 6 もインストールされています。 Visual Studio 2012 には VC++6 コンパイラを使用するオプションがありません。このオプションを (手動で) 追加するにはどうすればよいですか?
1 に答える
答えは間違いなく多分です。可能性は十分にあると思われますが、VC 6 のコピーを取得できなかったため、確認できませんでした。私ができたのは、VS 2012 で VC 7 (VS 2002) を使用してプロジェクトをコンパイルすることでした。
更新:答えは間違いなくイエスです。OPはコメントで、このソリューションを使用してVC 6を機能させることができたことを示しています。
構成
私がこれを行った方法は、以下をインストールすることでした(インストール順に):
Windows 7、SP1、32 ビット
VS 2012 をサポートする最も古いバージョンの Windows であるため、Windows 7 を選択しました。VS 2002 (VC7) は x64 マシンにインストールできないため、32 ビット バージョンを使用しました。
ビジュアル スタジオ 2002、SP1
前述のとおり、VC6 を取得できませんでした。Microsoft のサイトのどこにもありませんでした。この質問に対するブルースのコメントは、次の有益な洞察を提供します。
Visual C++ 6.0 は、Microsoft JVM が含まれていたため、Microsoft から (MSDN 経由を含めて) 入手できません。詳細については、このリンクを参照してください。–ブルースクラン
上記を見て、VS 2002 (VC 7) をインストールするのが次善の策だと思いました。
明らかに、コピーがある場合は、これが VC 6 をインストールする場所です1。
1興味のある方は、VC 6 が Ebay で入手できることに注意してください。ポイントではなく実際の通貨で支払われていたら、私はさらに一歩進んでテスト用の VC 6 のコピーを入手したでしょう。
ビジュアル スタジオ 2010、SP1
これの唯一の理由は、それがDaffodilの要件だからです。水仙の詳細は以下のとおりです。
Visual Studio 2012、更新 2
これは元の質問からの要件です。
これは、VS 2010 および VS 2012 が古い VC コンパイラをターゲットにできるようにする構成ファイルのセットです。
現在、サポートされている VC コンパイラのバージョンは次のとおりです。
- VC 8 (ビジュアル スタジオ 2005)
- VC 7.1 (ビジュアル スタジオ 2003)
- VC 7 (ビジュアル スタジオ 2002)
- VC 6 (ビジュアル スタジオ 6)
Daffodil は VS 2012 を IDE として正式にサポートしていませんが、機能しているようです。水仙のサイトより:
水仙は、VS 2010 もインストールされている限り、VS 2012 以降のバージョン2で正常に動作します。
2 VS 2013 および VS 2015 を使用すると、デバッグの問題が発生するようです。ここで説明されているよう
に、Visual Studio 2013 内で v60 プラットフォーム ツールセットを使用すると、デバッグ情報が一致しません。
テスト
上記をテストするために、Visual Studio 2012 で新しい C++ Win 32 コンソール プロジェクトを作成しました。次に、プロジェクトからすべてのヘッダー ファイルと cpp ファイルを削除しました。これらには VS 2012 固有のものがあるため、必要ありませんでした。次に、テストに使用できる単純な「hello world」ファイルを追加しました。
#include <iostream.h>
void main()
{
cout << "Hello World!" << endl;
}
プロジェクトをそのまま使用して(VS 2012をターゲットに)、ビルドしようとしましたが失敗しました。
次に、プロジェクトを右クリックしてプロパティを選択しました。ダイアログの左側で [ Configuration Properties ] を選択し、右側の [ Platform Toolset ] でv70を選択しました。v60のオプションもあることに注意してください。
次に、変更をプロジェクトに保存し、ビルドを行いました。exeのビルドに成功しました。VC 7 が使用されていることを確認するために、コンパイル中にProcess Monitorを起動しました。
ご覧のとおり、コンパイラの cl.exe が VC 7 ディレクトリから呼び出されています。
最終的な考え
元の質問には、既存の VC 6 プロジェクトのコンパイルが含まれます。これに関するいくつかのメモ。
私の推測では、リターゲットを機能させるには、VS 2012 で新しい空のプロジェクトを作成し、既存のソース ファイルをすべて追加する必要があります。これを行う理由は、Visual Studio の 2 つのバージョン間でプロジェクトの形式が明らかに異なるためです。
前述したように、6 ではなく VC 7 を使用してテストしました。最後のステップは、OP が VC 6 を使用してこれらすべてを試すことだと思います。うまくいけば、すべてうまくいきます。
リンク
- CodePlex の水仙
- C ++ チーム ブログでの VS 2010 のC++ ネイティブ マルチターゲット
- VS Android - VS 2010 を使用して Android をターゲットにするための構成
- VS-Tool - さまざまなフレームワークをターゲットにするための構成: Clang、EmScripten、MinGW、NACL、Python