Как отключить неиспользуемые предупреждения переменных, выходящие из gcc в стороннем коде, который я не хочу редактировать?



Я хотел бы знать, какой переключатель вы передаете компилятору gcc, чтобы отключить предупреждения о неиспользуемых переменных? Я получаю ошибки из boost на windows, и я не хочу касаться кода boost:



C:boost_1_52_0/boost/system/error_code.hpp: At global scope:
C:boost_1_52_0/boost/system/error_code.hpp:214:36: error: 'boost::system::posix_category' defined but not used [-Werror=unused-variable]
C:boost_1_52_0/boost/system/error_code.hpp:215:36: error: 'boost::system::errno_ecat' defined but not used [-Werror=unused-variable]
C:boost_1_52_0/boost/system/error_code.hpp:216:36: error: 'boost::system::native_ecat' defined but not used [-Werror=unused-variable]


Я пробовал использовать оба -Wunused-value и -Wno-unused-value но ни один из них не подавил сообщения выше.



какая правильная команда, вот моя строка компиляции:



g++  -g -fno-inline -Wall -Werror -Wextra -Wfloat-equal -Wshadow
-Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -Wno-conversion
-Wdisabled-optimization -Wredundant-decls -Wunused-value -Wno-deprecated
-IC:boost_1_52_0 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
-c -o op.o op.cpp


возможно -Wall переопределяет моя цель?

651   9  

9 ответов:

The -Wno-unused-variable переключатель обычно делает трюк. Однако это очень полезное предупреждение, если вы заботитесь об этих вещах в своем проекте. Это становится раздражающим, когда GCC начинает предупреждать вас о вещах, не входящих в ваш код.

Я бы рекомендовал вам сохранить предупреждение, но использовать -isystem вместо -I для включения каталогов сторонних проектов. Этот флаг говорит GCC не предупреждать вас о вещах, которые вы не контролируете.

например, вместо из -IC:\boost_1_52_0, сказал -isystem C:\boost_1_52_0.

надеюсь, что это помогает. Удачи Вам!

иногда вам просто нужно подавить только некоторые предупреждения, и вы хотите сохранить другие предупреждения, просто чтобы быть в безопасности. В вашем коде вы можете подавить предупреждения для переменных и даже формальных параметров с помощью GCC неиспользованный

Если вы используете gcc и хотите отключить предупреждение для выбранного кода, Вы можете использовать директиву компилятора #pragma:

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-variable"
( your problematic library includes )
#pragma GCC diagnostic pop

для кода, который вы контролируете, вы также можете использовать __attribute__((unused)), чтобы указать компилятору, что определенные переменные не используются.

посмотреть man gcc в разделе Параметры предупреждения. Там у вас есть целая куча unused

Опции Предупреждение
... -Wunused -Wunused-функция -Wunused-метки -Wunused-параметр -Wunused-значение -Wunused-переменная -Wunused-но-установить-параметр -Wunused-но-набор-переменная

Если вы префикс любого из них с no-, он отключит это предупреждение.

многие параметры имеют длинные имена, начинающиеся с-f или с-W - - - для например,-fmove-loop-инварианты, - Wformat и так далее. Большинство из них имеют как положительные, так и отрицательные формы; отрицательная форма-ffoo будет-fno-foo. Данное руководство документирует только одну из этих двух форм, в зависимости от того, какая из них не является стандартной.

более подробное объяснение можно найти в параметры запроса или подавления предупреждений

использовать -Wno-unused-variable должны работать.

компилятор уже говорит вам, что это не value но variable. Вы ищете -Wno-unused-variable. Кроме того, попробуйте g++ --help=warnings чтобы увидеть список доступных вариантов.

Как отключить неиспользуемые предупреждения переменных, выходящие из gcc?
Я получаю ошибки из boost на windows, и я не хочу касаться кода boost...

вы по адресу!--6-->Boost в проф и подать отчет об ошибке против повышения.

ваше приложение не несет ответственности за удаление предупреждений и ошибок библиотеки. Библиотека несет ответственность за удаление собственных предупреждений и ошибок.

удалить -Wall и это должно работать. Проблема с удалением -Wall это также будет подавлять законные предупреждения. Вам придется вручную выбрать -W параметры в этом случае или заменить на -Wno-unused-variable после того, как вы все предупреждения покрыты.

LOCAL_CFLAGS = -Wno-unused-variable -g
export IGNORE_WARNINGS=1

он отображает предупреждения, но продолжает сборку

Comments

    Ничего не найдено.