很抱歉有许多类似的问题,但我发现在Google 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选项后,对于外部库仍然出现相同的错误。我认为这是因为-m32使得gcc生成32位的二进制文件,但ld仍在尝试生成64位输出?在Google上进一步搜索此问题未能获得成功,因此如果有人能够验证我的想法并给出正确的解决方法,我将非常感激!
非常感谢!
COMPILE_FLAGS
已被弃用,因此该方法在3.12版本中不再适用。 - Egon Stetmann.COMPILE_FLAGS
替换为COMPILE_OPTIONS
以避免使用已弃用的属性。 - fdk1342LINK : warning LNK4044: unrecognized option '/m32'; ignored
这个警告信息。 - Meekohi