很抱歉,有许多类似的问题,但我确实发现谷歌搜索CMake查询总是产生类似但不相同的场景,冲突的CMake命令等等!
我需要强制我的项目构建32位二进制文件,因为我必须链接一个只能作为32位的库.我根据错误消息诊断出这个错误,例如:
/usr/bin/ld: i386 architecture of input file `*external-32bit-lib*' is incompatible with i386:x86-64 output
Run Code Online (Sandbox Code Playgroud)
因此,我应该使用:
set (CMAKE_CXX_FLAGS "-m32")
Run Code Online (Sandbox Code Playgroud)
这确实改变了一些事情 - 我现在得到了几个错误:
/usr/bin/ld: i386 architecture of input file `*project-output-lib*' is incompatible with i386:x86-64 output
Run Code Online (Sandbox Code Playgroud)
并且仍然会获得外部库的相同错误.我认为这是因为-m32制作的gcc生成32位二进制文件,但ld仍在尝试64位输出?进一步谷歌搜索这个问题没有取得任何成功,所以如果有人能够证实我是对的,并给出正确的方法,我将非常感激!
非常感谢!