2014-07-04 35 views
4

一个项目需要在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,还有什么我可以使用的?
我该怎么做才能让他们都快乐?如何同时满足gcc4.1.2和gcc 4.7.3

+1

你可以修改代码,使警告以无害的方式消失吗? – Yakk

+0

修复代码听起来像是一个计划,或者将服务器升级为不是* 7-1/2年前的工具链。当然,您可以将'gcc --version'的结果传递给make文件中的配置属性,并确定要使用哪个CCFLAGS,但这会很快*。 – WhozCraig

+0

你有权访问makefile吗? –

回答

1

我建议你处理makefile中两个版本之间的差异。如果GCC版本支持GCC版本,则可以检测到GCC版本并标准地包含额外的警告选项。这将有助于公司最终前进。

修复代码是值得的,但不要使用警告。他们是告诉你首先有问题的事情(否则你不会启用他们的权利?)

无论如何,你可以通过将结果投给void系统函数来获得未使用的警告编译器很高兴你应该忽略:

(void)builtin(...);