トップ回答者
cl.exe (Visual C++ コンパイラ) の現状バージョンの確認方法(32bitと64bitの併用)

質問
-
現在、Windows 7 64bit版、Visual Studio 2010にてVC++のアプリケーションを開発しています。
このマシンで32bitアプリケーションと64bitアプリケーションの同時メンテナンスを行う必要があります。
これから64bit化を行うのですが、下記リンクにて、cl.exe (Visual C++ コンパイラ)をx64 on x64に変更する必要があるようです。
http://msdn.microsoft.com/ja-jp/library/x4d2c09s.aspx
しかし、32bit版のメンテナンスも引き続き行う必要があるため、現在の cl.exe (Visual C++ コンパイラ)のバージョンを確認しておきたいです。
現在の cl.exe (Visual C++ コンパイラ)のバージョンはどのようにして行えばよいのでしょうか?
- 編集済み smcsekhars 2012年12月18日 2:39
回答
-
32bitアプリを作成する場合でもvcvarsall は実行したりしませんよね?それと同じで、64bitアプリを作るからといって設定を行ったりする必要はありません。
>プロジェクトファイルが別
ここが違います。
プラットフォームを追加する場合(リンク先の手段がこの形です)、同じプロジェクトファイルで「32bitと64bitの両方のプログラムが作成、出力可能」になります。
危惧しているのは、同じプロジェクトであることをうっかり忘れて。。。という部分です(実際によくあるパターンですし、私自身がそういう経験をしているので)。
ほとんどの状況で32/64でコードを変えなければならないという部分はありませんが、ごくまれにそういう部分も出てきます。そういう場合はどうするか?なども同一プロジェクトの場合のみ考慮しなければならない部分に該当します(この手のものは#ifdef などで区切ることが多いですが)。
常に意識しておく必要のあるものではありませんが、全く意識しなくてもいいというものでもありません。
わんくま同盟,Microsoft MVP for Visual C++(Oct 2005-) http://blogs.wankuma.com/tocchann/
- 回答としてマーク erina777 2012年12月18日 3:27
-
>完全に別フォルダ、別ファイルのプロジェクトファイル
であれば、別物として、用意することは可能です。でも、別途コピーを作成して。。。とは書いてませんでしたよね?
ただし、VSに統合されたソース管理ツール(最近はSVNやGitも統合可能になってきています)を利用している場合、.vcxprojや.slnファイル内にソース管理ツールへの接続情報などが埋め込まれています。その場合は単純にコピーしても、別プロジェクトとはなりませんので注意が必要です。使ってるかどうかはわかりませんが。。。
ま、それはともかくとして...
64bitアプリの作成環境の用意は、構成を追加する形で設定します。
そのため、少なくとも追加直後の段階では32/64の両方が作成可能な状態になっています。
そのあとどうするか?については、設定の追加とは関係のない別の問題です。
あくまでも追加したままの状態を想定して書いています。
わんくま同盟,Microsoft MVP for Visual C++(Oct 2005-) http://blogs.wankuma.com/tocchann/
- 回答としてマーク erina777 2013年1月7日 2:48
すべての返信
-
提示のリンクは、「コマンドプロンプト」上で、cl.exeを呼び出すときのパス設定(パス環境変数)に関するものです。
Visual Studio 上でプロジェクトを用意し、それを使ってビルドする場合とは異なります。
VS2010であれば、http://msdn.microsoft.com/ja-jp/library/9yb4317s(VS.100).aspx が参考になると思います。
ちなみに、プロジェクトの構成(Debug/Releaseと同様の設定変更)にパターンを追加となりますので、メンテナンスは常に同時となります。
x86のみあるいはx64のみというメンテナンスではありませんのでそのあたりは多少なりとも意識しておく必要があります。
わんくま同盟,Microsoft MVP for Visual C++(Oct 2005-) http://blogs.wankuma.com/tocchann/
-
返信ありがとうございます。
上記のリンク(http://msdn.microsoft.com/ja-jp/library/9yb4317s(VS.100).aspx )をチェックしました。
Visual Studio 2010を使用する場合は、プロジェクトのプロパティ ページにて設定するのみで、
vcvarsall.batからx64を指定するようなことはしなくてもよいのでしょうか?
また、>>x86のみあるいはx64のみというメンテナンスではありませんのでそのあたりは多少なりとも意識しておく必要があります。
この記述がよく理解できなかったのですが、危惧している点はなんでしょうか。
ちなみに、私の環境では、
○64bit環境で稼動する32bitアプリのプロジェクト
○64bit環境で稼動する64bitアプリのプロジェクト
を平行メンテナンスする予定です。私の理解では、プロジェクトファイルが別であれば、並存可能であると思っています。
- 編集済み erina777 2012年12月17日 9:40
-
32bitアプリを作成する場合でもvcvarsall は実行したりしませんよね?それと同じで、64bitアプリを作るからといって設定を行ったりする必要はありません。
>プロジェクトファイルが別
ここが違います。
プラットフォームを追加する場合(リンク先の手段がこの形です)、同じプロジェクトファイルで「32bitと64bitの両方のプログラムが作成、出力可能」になります。
危惧しているのは、同じプロジェクトであることをうっかり忘れて。。。という部分です(実際によくあるパターンですし、私自身がそういう経験をしているので)。
ほとんどの状況で32/64でコードを変えなければならないという部分はありませんが、ごくまれにそういう部分も出てきます。そういう場合はどうするか?なども同一プロジェクトの場合のみ考慮しなければならない部分に該当します(この手のものは#ifdef などで区切ることが多いですが)。
常に意識しておく必要のあるものではありませんが、全く意識しなくてもいいというものでもありません。
わんくま同盟,Microsoft MVP for Visual C++(Oct 2005-) http://blogs.wankuma.com/tocchann/
- 回答としてマーク erina777 2012年12月18日 3:27
-
>完全に別フォルダ、別ファイルのプロジェクトファイル
であれば、別物として、用意することは可能です。でも、別途コピーを作成して。。。とは書いてませんでしたよね?
ただし、VSに統合されたソース管理ツール(最近はSVNやGitも統合可能になってきています)を利用している場合、.vcxprojや.slnファイル内にソース管理ツールへの接続情報などが埋め込まれています。その場合は単純にコピーしても、別プロジェクトとはなりませんので注意が必要です。使ってるかどうかはわかりませんが。。。
ま、それはともかくとして...
64bitアプリの作成環境の用意は、構成を追加する形で設定します。
そのため、少なくとも追加直後の段階では32/64の両方が作成可能な状態になっています。
そのあとどうするか?については、設定の追加とは関係のない別の問題です。
あくまでも追加したままの状態を想定して書いています。
わんくま同盟,Microsoft MVP for Visual C++(Oct 2005-) http://blogs.wankuma.com/tocchann/
- 回答としてマーク erina777 2013年1月7日 2:48