一个项目需要在gcc4.1.2(公司服务器)和gcc 4.7.3+(桌面linux系统)下编译,遇到一些问题:
1. gcc 4.1.2 没有Wno-unused-result
和Wno-unused-but-set-variable
。我尝试用 Wno-unused
替换后两者,但仍然生成忽略返回值的内置函数错误。
2. gcc 4.1.2 中也没有Wno-narrowing
,还有什么我可以用的吗?
我应该怎么做才能让他们都开心?
最佳答案
我建议您在 makefile 中处理两个版本之间的差异。您可以检测 GCC 版本,如果 GCC 版本支持它们,则可以 pramatically 包括额外的警告选项。当公司最终向前发展时,这将有所帮助。
修复代码是值得的,但不要不使用警告。它们首先会告诉您存在问题(否则您不会启用它们,对吧?)
无论如何,您可以通过将结果转换为 void 来绕过对系统函数的未使用警告,编译器很高兴您应该忽略它:
(void)builtin( ... );
关于c++ - 如何同时满足 gcc4.1.2 和 gcc 4.7.3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24566043/