2011-03-24 31 views
0

我需要构建一个包含许多C源文件和头文件的项目。该项目在xcode中编译时有警告(这很好),但是当我尝试在Windows XP上的Eclipse中使用GNU gcc C编译器进行编译时,我得到很多“重新声明”和“嵌套重新定义”错误。这些错误都引用了几个不同头文件中枚举器的typedef。如何设置Eclipse gcc编译器忽略特定错误或将错误更改为警告

这些头文件中的每一个都在整个文件周围都有相应的#ifndef/#define /#endif标签,但是它们键入了相同的枚举符(认为复制/粘贴typedefs为多个头文件),使得一个头文件将#include数个其他头文件中的每一个都具有相同的枚举器typedef具有相同的名称。

我被告知在xcode中编译了警告,我不允许修改现有的代码。当我在xcode中编译警告时,我试图找到一种让Eclipse忽略这些错误或将它们更改为警告来编译但不成功的方法。编译器使用第一个还是最后一个定义/声明并不重要。它们是相同的重新定义/重新声明。

有没有办法做到这一点?

编辑:错误标志进行编译-Wall

回答

0

你的编译器是不会让你改变一个错误变成警告。不过,大多数人会让你走相反的道路。你是否将-Werror传递给windows/eclipse系统中的编译器?这听起来像你的一些守卫没有工作。如果你给我们更多的细节,我们可能会帮助你。

+0

我希望能够忽略它。我使用的是gcc选项:-I“C:\ Program Files \ asn1c \ skiletons”-O0 -g3 -Wall -c -fmessage-length = 0 – Nate 2011-03-24 23:09:29

+0

@Nate - gcc版本是否有所不同?也许你在Windows上使用的是更挑剔的。我会注意到,重新定义一个'typedef',甚至到它以前定义的相同的东西,是无效的C. – 2011-03-24 23:16:55

+0

很可能我使用的windows gcc将它视为错误而不是在mac上发出警告。我会做一些深入的研究。感谢您确认重新定义为无效C. – Nate 2011-03-24 23:26:56