克服 CMake 中的单个编译器限制
CMake 在使用同一语言的多个编译器时会带来挑战,因为它指定单个编译器所有 C 源文件的编译器。这种排他性给在单独的 CMakeLists.txt 中混合主机和交叉编译带来了困难。
探索多个编译器选项
尽管进行了广泛的探索,但很明显,CMake 本质上仅支持在所有目标之间共享的一组编译器属性。这意味着不同的目标使用相同的编译器,这在需要同一语言的不同编译器的情况下可能会成为障碍。
要规避此限制,最简单的方法是多次执行 CMake。然而,即使使用相同的编译器工具链编译不同的体系结构(例如,32 位和 64 位),这种方法也可能很麻烦。
另一种解决方案是使用自定义命令,尽管不太理想。这种技术可以有效地创建复杂的 shell 脚本,但通常无法提供所需的结构级别。
分离与集成
最优雅的解决方案是分离编译过程到不同的 CMakeLists.txt 文件中。这种方法消除了不同架构之间链接的需要,并允许将共享元素提取到单独的文件中,以便包含在各种 CMake 脚本中。
虽然这种策略牺牲了单命令构建的便利性,但它打开了大门用于调用各个 CMake-makefile 的自定义脚本。通过有效地分离使用不同编译器构建的问题,此方法保持了清晰度和效率。
以上是## CMake 如何处理同一语言的多个编译器?的详细内容。更多信息请关注PHP中文网其他相关文章!