我正在构建一个我想支持某个专有平台的应用程序。它使用了CMake 似乎不喜欢的 ARMCC 的修改版本 - 无论我做什么,它都会不断尝试armlink
在不应该的地方提供奇怪的标志,而忽略覆盖其行为的尝试。
是否有可能从本质上提供一个关于 CMake 应该如何处理特定编译器的全新定义?即在整个过程中指定用于编译、链接等的二进制文件和标志、预期的文件扩展名等,这样CMake 就不会做任何讨厌的事情?CMake 似乎使自定义编译器定义变得非常晦涩难懂。
编辑:我已经让它提供了大部分正确的标志,但现在我意识到我无法更改 CMake 测试程序 - 如果某个非典型符号集(替代入口点,不是主要的)不存在。
编辑2:我已经跳过了测试程序,但是现在它在尝试获取编译器信息时失败了(为什么要麻烦?我已经给它提供了它需要知道的所有情况......)并出现此错误:
Error: C9912E: No --cpu selected
为了清楚起见,它在上面一行显示的命令显然具有提供给有效值的 --cpu 标志:
armcc.exe -xc++ --cpu=MPCore -fpch-preprocess -v -dD -E
虽然我完全不确定它试图用它的其余部分做什么 - 我似乎无法覆盖这部分。