Windows で x64 用の build 環境を作る時のメモです。
●VisualStudio 2005 IDE
・MSDN 方法 : Visual C++ プロジェクトを 64 ビット プラットフォーム用に設定する
構成マネージャで新しい Platform を追加するだけでいいようです。
WindowsCE の CPU 追加と同じような感じ。
その後 Options の Projects and Solutions → VC++ Directories でも
Platform を選択してフォルダなどの確認や追加をします。
32bit 版 Vista で作業しているので、クロス開発用バイナリ x86_amd64 が
選択されていました。
DirectX SDK 用に下記の設定を追加します。必ず一番上にしておきます。
Executable files: $(DXSDK_DIR)Utilities\Bin\x64Inclue files: $(DXSDK_DIR)Include Library files: $(DXSDK_DIR)Lib\x64
●コマンドライン用
・MSDN 方法 : 64 ビットの Visual C++ ツールセットをコマンド ラインから有効にする
vcvarsall.bat の中を見ると各環境用の個別のファイルを呼び出して
いるだけでした。それぞれ専用の環境変数設定が用意されています。
x86 32bit 用 amd64 64bit 用 x86_amd64 32bit 上で 64bit バイナリの作成 (クロスコンパイル)
環境設定用 bat ファイル
x86 VC\bin\vcvars32.bat adm64 VC\bin\amd64\vcvarsamd64.bat x86_adm64 VC\bin\x86_amd64\vcvarsx86_amd64.bat
ひとつの Makefile で各環境用のバイナリを作るなら、これらの設定も
Makefile に記述することになるでしょう。
x64 の場合 lib のそれぞれのパスに lib\amd64 を追加するだけで、
または DirectX SDK のように x86 を x64 に置き換えます。
binary path の場合は上記のようにクロスコンパイルを含めた 3 種類の
構成があります。x86_amd64 では x86 用 bin も必要なので、その前に
x86_amd64 用パスを追加します。
x86 C:\Program Files\Microsoft Visual Studio 8\VC\bin amd64 C:\Program Files\Microsoft Visual Studio 8\VC\bin\amd64 x86_amd64 C:\Program Files\Microsoft Visual Studio 8\VC\bin\x86_amd64 C:\Program Files\Microsoft Visual Studio 8\VC\bin
あとはコンパイルオプションの変更など。
ほぼ同じ指定が可能で -arch:SSE2 は不要。
__asm ははじかれたけど、intrin.h は大丈夫そうです。