Как настроить компилятор Eclipse gcc для игнорирования определенных ошибок или перехода от ошибки к предупреждению

Мне нужно создать проект, состоящий из множества исходных файлов C и файлов заголовков. Проект компилируется в xcode с предупреждениями (это нормально), но когда я пытаюсь скомпилировать его с помощью компилятора GNU gcc C в Eclipse в Windows XP, я получаю много ошибок «повторного объявления» и «вложенного переопределения». Все эти ошибки ссылаются на определения типов перечислителей в нескольких разных файлах заголовков.

Каждый из этих файлов заголовков имеет соответствующие теги #ifndef/#define/#endif вокруг всего файла, но они определяют одни и те же перечислители (подумайте о копировании/вставке typedef в несколько заголовков), так что один файл заголовка будет #включать несколько других файлов заголовков каждый из которых имеют один и тот же typedef перечислителя с тем же именем.

Мне сказали, что это компилируется с предупреждениями в xcode, и мне не разрешено изменять существующий код.

Поскольку он компилируется с предупреждениями в xcode, я пытался найти способ заставить Eclipse игнорировать эти ошибки или изменить их на предупреждения для компиляции, но безуспешно. Не имеет значения, использует ли компилятор первое или последнее определение/объявление. Это идентичные переопределения/переобъявления.

Есть ли способ сделать это?

Изменить: компиляция с флагом ошибки -Wall


person Nate    schedule 24.03.2011    source источник


Ответы (1)


Ваш компилятор вряд ли позволит вам превратить ошибку в предупреждение. Однако большинство позволит вам пойти другим путем. Вы передаете -Werror компилятору в вашей системе Windows/Eclipse? Похоже, что некоторые из ваших включенных охранников не работают. Если вы дадите нам более подробную информацию, мы могли бы быть в состоянии помочь вам.

person Carl Norum    schedule 24.03.2011
comment
Я надеялся, что это можно будет игнорировать. Я использую параметры gcc: -IC:\Program Files\asn1c\skiletons -O0 -g3 -Wall -c -fmessage-length=0 - person Nate; 25.03.2011
comment
@Nate - версии gcc отличаются? Возможно, тот, который вы используете в Windows, более привередлив. Я отмечу, что переопределение typedef даже для того же, что было ранее определено, недопустимо C. - person Carl Norum; 25.03.2011
comment
Вполне возможно, что Windows gcc, которую я использую, рассматривает это как ошибку, а не как предупреждение на Mac. Я немного покопаюсь в этом. Спасибо за подтверждение переопределения как недопустимого C. - person Nate; 25.03.2011