在编译时检查工具链配置

时间:2012-11-21 15:44:29

标签: gcc makefile toolchain gnu-toolchain

是否有一种在编译时检查(gcc)编译器配置的好方法(从Makefile中或在C源文件中)。我想检查所使用的编译器是否对正在编译的代码有足够的支持,如果没有,我希望它立即失败并显示一条明确的消息,要求用户升级他们的工具链。

由于

约翰

2 个答案:

答案 0 :(得分:0)

我建议使用最常用的工具是autotoolsCMake

Autotools是GNU项目的历史工具,是一套脚本,允许开发人员通过M4脚本(autoconf)实现功能检测。常用测试有预定义的宏。

CMake是一种更新的本机C ++工具链,它还包括对最常见功能检查的支持,并允许开发人员通过其强大的语言实现自己的测试。

请注意,两者都是完全构建工具链,完全取代手写的makefile。 但我相信,他们在跨平台支持和可维护性方面提供的优势远远超过makefile提供的控制水平。

答案 1 :(得分:0)

如果检测到的问题的解决方案是升级工具链,请检查编译器预定义的__GNUC____GNUC_MINOR____GNUC_PATCHLEVEL__宏。