2011-07-04 9 views
4

32ビット版と64ビット版のWindowsとUbuntu用にビルドされるC++プロジェクトを設定しています。私はCMake 2.8.4を使用しており、数時間再生した後、VS2010の32ビットおよび64ビットプロジェクトをセットアップしました。私が遭遇した問題は、Ubuntu側のEclipse用ジェネレータ(技術的にはすべてのプラットフォーム上のEclipseジェネレータ用)が32ビット/ 64ビットの別バージョンを持っていないことです。CMakeを使用して32ビット/ 64ビットEclipse CDTプロジェクトを生成する

私は、どのビットタイプ(-m32、-m64)を指定するためのGCCコンパイラスイッチがあり、私は別の解決方法を気にしませんが、ビルドディレクトリでcmakeを実行しているときはどうしますか私はそれを誰に教えていますか?組み込みの方法がない場合、BITTYPE=64のようなカスタム変数/値をcmakeコマンドに渡すことは可能ですか?そうすれば、単純なif/elseを使って残りの部分をCMakeLists.txtファイルで処理できます。

答えて

3

Linuxでは、CMakeはコンパイラフラグを調べて、32ビットまたは64ビット用にコンパイルするかどうかを判断します。あなたが実行しているcmakeの時にCMAKE_C_FLAGSCMAKE_CXX_FLAGS情報を設定することにより、その情報を渡すことができます:cmakeのは、その後、32ビットまたは64ビットプロジェクトを生成しているかどうかを判断するために

cmake -G "Eclipse CDT4 - Unix Makefiles" -DCMAKE_C_FLAGS=-m32 -DCMAKE_CXX_FLAGS=-m32 

移植可能な方法を、CMAKE_SIZEOF_VOID_P変数を照会することで、例:

if (CMAKE_SIZEOF_VOID_P EQUAL 8) 
    # 64-bit project 
else() 
    # 32-bit project 
endif() 
+0

これは、トリック、ありがとう! – Gemini14

関連する問題