【问题标题】:Generating 32-bit/64-bit Eclipse CDT projects using CMake使用 CMake 生成 32 位/64 位 Eclipse CDT 项目
【发布时间】:2011-09-28 10:35:03
【问题描述】:

我正在设置一个 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 文件中的其余部分。

【问题讨论】:

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


    【解决方案1】:

    在 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()
    

    【讨论】:

      猜你喜欢
      • 2011-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-04
      相关资源
      最近更新 更多