如何同时满足gcc4.1.2和GCC 4.7.3

how to satisfy both gcc4.1.2 and gcc 4.7.3

本文关键字:GCC 何同时 满足 gcc4      更新时间:2023-10-16

一个项目需要在gcc4.1.2(公司服务器)和gcc 4.7.3+(桌面linux系统)下编译,并且有一些问题:
1. gcc 4.1.2没有Wno-unused-resultWno-unused-but-set-variable。我试图用Wno-unused代替后两者,但仍然生成忽略内置函数错误的返回值。
2. 在gcc 4.1.2中也没有Wno-narrowing,还有什么我可以使用的吗?
我该怎么做才能让他们俩都开心呢?

我建议您在makefile中处理两个版本之间的差异。您可以检测GCC版本,并在GCC版本支持的情况下实际包含额外的警告选项。这将有助于公司最终向前发展。

修复代码是值得做的,但是不要不使用警告。它们是首先告诉你有问题的东西(否则你不会启用它们,对吗?)

无论如何,您可以通过将结果强制转换为void来绕过对系统函数的未使用警告,编译器很高兴您可以忽略该结果:

(void)builtin( ... );