是否有一种在编译时检查(gcc)编译器配置的好方法(从Makefile中或在C源文件中)。我想检查所使用的编译器是否对正在编译的代码有足够的支持,如果没有,我希望它立即失败并显示一条明确的消息,要求用户升级他们的工具链。
由于
约翰
答案 0 :(得分:0)
Autotools是GNU项目的历史工具,是一套脚本,允许开发人员通过M4脚本(autoconf)实现功能检测。常用测试有预定义的宏。
CMake是一种更新的本机C ++工具链,它还包括对最常见功能检查的支持,并允许开发人员通过其强大的语言实现自己的测试。
请注意,两者都是完全构建工具链,完全取代手写的makefile。 但我相信,他们在跨平台支持和可维护性方面提供的优势远远超过makefile提供的控制水平。
答案 1 :(得分:0)
如果检测到的问题的解决方案是升级工具链,请检查编译器预定义的__GNUC__
,__GNUC_MINOR__
,__GNUC_PATCHLEVEL__
宏。