任意のコンパイラとOSを使用してx86アーキテクチャとx64アーキテクチャの両方をコンパイルできるCMakeセットアップを作成する方法を知りたいです。
CMakeにそのまま32/64ビットオプションがあれば素晴らしいでしょう。そうではないため、異なるコンパイラーまたはジェネレーターの依存メソッドのいずれかを適用する必要があります。例えば。:
GCC(Linux上)およびその他のコンパイラー(例:サンスタジオ。 CFLAGS
およびCXXFLAGS
を設定して、-m32
(32ビットビルド)または-m64
(64ビットビルド)を含めます。
Windows、Visual Studioジェネレーター。 64ビットジェネレーターを使用します。
cmake -G "Visual Studio 10 Win64" path\to\source\dir
64ビット(x64)をコンパイルします。 32ビット用にビルドするには、ジェネレーター名に「Win64」を省略します
Mac OS X。CMAKE_OSX_ARCHITECTURES
CMake変数を使用します。
cmake -DCMAKE_OSX_ARCHITECTURES=i386 /path/to/source/dir
は32ビットビルドをコンパイルします
cmake -DCMAKE_OSX_ARCHITECTURES=x86_64 /path/to/source/dir
は64ビットをコンパイルします。
cmake "-DCMAKE_OSX_ARCHITECTURES=x86_64;i386" /path/to/source/dir
は96ビットのユニバーサルバイナリを作成します:)
上記は少し言い換えられています。
http://dev.mysql.com/doc/internals/en/compiling-for-different-hardware-achitectures.html
2019年4月に更新
これは古い答えです。特にWindows上のVSジェネレーターでは、いくつかの点が変更されています。
cmake 3.14、およびVisual Studio 2019がインストールされている
cmake -G "Visual Studio 16 2019" -A x64 path\to\source\dir
64ビット(x64)をコンパイルします。通常、x64マシンでは-Gパラメーターと-Aパラメーターの両方を省略できます(2019年にx64 OSを使用していますよね?)
cmake -G "Visual Studio 16 2019" -A Win32 path\to\source\dir
32ビットをコンパイルします。
CMakeチュートリアル があり、基本について説明しています。これはCMakeブックから引用されています。 CMakeの哲学は、単一のソースツリーで複数のビルドディレクトリを使用することです。したがって、WindowsでVisual Studioを使用し、32ビットコンパイラーを使用してビルドディレクトリを作成し、64ビットコンパイラーを使用してビルドディレクトリを作成できます。
CMakeは多数のコンパイラとオペレーティングシステムを対象としていますが、使用している言語、使用しているオペレーティングシステム/コンパイラ/アーキテクチャ、およびツールキット/ライブラリを使用している場合は言及しません。
CMAKE_OSX_ARCHITECTURES = i386で「認識されないオプション-Arch」というエラーが表示される場合は、最初からやり直してください。
cmake -DCMAKE_SYSTEM_NAME=Darwin -DCMAKE_SYSTEM_PROCESSOR=i386 -DCMAKE_SYSTEM_VERSION=10