使用 CMake 强制进行 32 位编译的正确方法

新手上路,请多包涵

抱歉,有很多类似的问题,但我确实发现谷歌搜索 CMake 查询总是会产生类似但不一样的场景、冲突的 CMake 命令等等!

我需要强制我的项目构建 32 位二进制文件,因为我必须链接一个只能作为 32 位使用的库。我根据错误消息进行了诊断,例如:

 /usr/bin/ld: i386 architecture of input file `*external-32bit-lib*' is incompatible with i386:x86-64 output

因此,根据我收集的信息,我应该使用:

 set (CMAKE_CXX_FLAGS "-m32")

这确实改变了一些事情 - 我现在收到几个错误,例如:

 /usr/bin/ld: i386 architecture of input file `*project-output-lib*' is incompatible with i386:x86-64 output

并且仍然会为外部库获得相同的错误。我 认为 这是因为 -m32 使 gcc 生成 32 位二进制文件,但 ld 仍在尝试 64 位输出?进一步谷歌搜索这个问题并没有取得任何成功,所以如果有人能验证我是正确的并给出正确的方法,我将非常感激!

非常感谢!

原文由 devrobf 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.8k
1 个回答
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题