gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:05:25 25 4
gpt4 key购买 nike

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

最佳答案

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

关于c++ - 使用 CMake 生成 32 位/64 位 Eclipse CDT 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6576803/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com