使用CMake生成32位/ 64位Eclipse CDT项目

时间:2011-07-04 23:22:26

标签: c++ eclipse g++ cmake eclipse-cdt

我正在建立一个C ++项目,它将为32位和64位版本的Windows和Ubuntu构建。我正在使用CMake 2.8.4,在玩了几个小时后,安装了VS2010 32位和64位项目。我遇到的问题是Ubuntu端的Eclipse生成器(技术上是所有平台上的Eclipse生成器),没有32位/ 64位的单独版本。

我意识到有一个GCC编译器开关来指示你想要的位类型(-m32,-m64)并且我不介意有单独的解决方案,但是当我在构建目录中运行cmake时,我该怎么办告诉它我想要哪一个?如果没有内置方式,是否可以将自定义变量/值(如BITTYPE=64)传递给cmake命令?这样我就可以使用简单的if / else。

处理CMakeLists.txt文件中的其余部分

1 个答案:

答案 0 :(得分:3)

在Linux下,CMake查看编译器标志以确定您是在编译32位还是64位。您可以在运行cmake时设置CMAKE_C_FLAGSCMAKE_CXX_FLAGS信息来传递该信息:

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

确定cmake是否正在生成32位或64位项目的可移植方法是查询CMAKE_SIZEOF_VOID_P变量,例如:

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