c++ - 如何同时满足 gcc4.1.2 和 gcc 4.7.3

标签 c++ c gcc

一个项目需要在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 版本支持它们,则可以 pramatically 包括额外的警告选项。当公司最终向前发展时,这将有所帮助。

修复代码是值得的,但不要不使用警告。它们首先会告诉您存在问题(否则您不会启用它们,对吧?)

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

(void)builtin( ... );

关于c++ - 如何同时满足 gcc4.1.2 和 gcc 4.7.3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24566043/

相关文章:

c++ - C++11 中 RAW 指针的智能 vector ?

c++ - 调整 native 窗口大小

c - #define ROBJECT_EMBED_LEN_MAX ROBJECT_EMBED_LEN_MAX 有什么作用?

c - 将 char 数组 int 值增加 1

c - C中不同的执行和输入字符集

c++ - 从多线程应用程序中高效退出(细节)

c++ - Qts 古老的 QCoreApplicationPrivate::sendPostedEvents 异常吃

c - 为 C 数字文字编写正则表达式

c - GCC 9.3.0中 `rand()`的定义

c++ - .comment 部分显示了 3 个不同的编译器?