项目需要在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
,还有什么我可以使用的吗?
我该怎么办才能让他们俩开心?
答案 0 :(得分:1)
我建议你处理makefile中两个版本之间的差异。您可以检测GCC版本,如果GCC版本支持,则可以包含额外的警告选项。这将有助于公司最终向前发展。
修复代码值得做,但不要使用警告。他们首先告诉你那里有一个问题(否则你不能正确启用它们吗?)
无论如何,你可以将未使用的警告转换为系统函数,方法是将结果转换为void,编译器很高兴你应该忽略它:
(void)builtin( ... );