我使用CMake为我的C编译启用IPO(过程间优化):
set_property(TARGET foo PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE)
正如预期的那样,这将导致添加-flto
编译器标志。但是,它还添加了-fno-fat-lto-objects
:这意味着生成的目标文件将 * 只有 * 中间代码,而不是正确编译的中间代码;这意味着链接器必须支持我的系统编译器的中间表示,并且能够识别IPO/LTO。
我没有要求-fno-fat-lto-objects
,也不想要它。我可以让CMake * 不 * 添加此选项吗?
2条答案
按热度按时间7xzttuei1#
我相信这是一个CMake bug...我有now filed:
开发人员只是做出了错误的假设,认为这是人们想要的。
t3psigkw2#
如何找到它:
Modules
,大部分内容都在那里。/usr/share/cmake/Modules