QNX RTP Logo QNX Realtime Platform: Русский Портал QNX
Thursday, 20 Nov 2008 10:34
Меню

Проект OpenNET - все о Unix
FAQ
В qcc есть возможность задания уровня предупреждений (warnings) при компиляции от 0 до 9, как они соответствуют уровням предупреждения gcc ? Print E-mail
Опции к компилятору gcc/g++ зашиты внутри кода qcc и выглядят таким образом:

* '-w0' передает опцию '-w' в компилятор gcc/g++.
* '-w[1-4] передает опции '-Wall -Wno-switch -Wno-parentheses -Wno-unused' в компилятор gcc/g++.
* '-w[5-8] передает опцию '-Wall' в компилятор gcc/g++.
* '-w9'передает опции '-Wall -Wshadow -Wpointer-arith -Wcast-qual -Wwrite-strings' в компилятор gcc/g++.

Подробнее об опциях к компилятору gcc/g++ можно почитать тут: http://gcc.gnu.org/onlinedocs/gcc-2.95.3/gcc_2.html#SEC2 читать секцию 2.6 "Options to Request or Suppress Warnings".

Вот описание некоторых опций для компилятора gcc/g++, которые передает qcc:
-w - пропускать все предупреждения.
-Wno-switch - никогда не выводить предупреждения, если аргументом для switch является индекс перечисляемых типов и не хватает перечисления case для одного или более кодов из этого перечисления. Запрещает выводить предупреждение, если используются метки case с индексами, которые выходят за пределы перечисляемого типа. Присутствие default в конструкции switch также пресекает это предупреждение.
-Wall - включает большинство опций вывода предупреждений по-умолчанию. Подробнее можно прочитать, кликнув по приведенной вверху ссылке.
-Wshadow - предупреждать всегда, если локальная переменная своим именем перекрывает другую локальную переменную с таким же именем.
-Wpointer-arith - предупреждать всегда, если что-то зависит от размера (sizeof) типа функции или типа void. GNU C принимает размеры этих типов равными 1 для удобства при вычислениях с указателями на тип void и указателями на функции.
-Wcast-qual - предупреждать всегда, когда преопразование указателя убирает спецификатор из нового типа. Например, const char* преобразовывается в обычный char*.

[Вернуться к списку]
©   2000-2003 Команда проекта QNX.ORG.RU // QNX.ORG.RU Team
Авторы проекта: Дмитрий Алексеев [dmi] и Дмитрий Васильев. Техническое сопровождение проекта: Игорь Сорокин [isorokin]. Информационное сопровождение: Дмитрий Алексеев [dmi]
QNX - зарегистрированная торговая марка QNX Software Systems, Ltd., Canada. Остальные упоминаемые на сайте торговые марки и логотипы являются исключительно собственностью их уважаемых владельцев. Ничьи права не затронуты. Материалы сайта не могут быть скопированы и где-либо использованы в той или иной форме без письменного разрешения разработчиков сайта.
Powered by Mambo Open Source