Russian Qt Forum
Ноябрь 25, 2024, 01:42
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Вопросы новичков
>
Отключение избранных предупреждений директивами компилятора
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Отключение избранных предупреждений директивами компилятора (Прочитано 9989 раз)
Odyssey
Гость
Отключение избранных предупреждений директивами компилятора
«
:
Июнь 22, 2012, 14:12 »
В известной книге серии С++ In-Depth "101 совет..." чуть ли не первым пунктом стоит избавление ото всех предупреждений компилятора на максимальном уровне. Их позволяется отключать, кажется, в одном случае: если они есть в поставляемой библиотеке. Вместо нее предлагается подключать наш собственный файл, являющийся "оберткой" исходной библиотеки, в которой однако специальными командами компилятора предлагается на время отключать вывод тех ошибок, которые в сторонней библиотеке содержатся.
Однако мне было не до конца понятно, как именно отключать конкретные типы предупреждений и как определить, какой номер, скажем, у предупреждения "unused variable". А как вы это делаете?
UPD.
Вот как это было сделано в книге Саттера/Александреску. Требуются номера предупреждений...
#pragma warning(push) //Отключение предупреждений только для данного заголовочного файла
#pragma warning(disable:4512)
#pragma warning(disable:4180)
#include "lib.h" //Исходная, "обертываемая" библиотека
#pragma warning(pop) //Восстанавливаем исходный уровень вывода предупреждений
«
Последнее редактирование: Июнь 25, 2012, 14:42 от Odyssey
»
Записан
mutineer
Гость
Re: Отключение избранных предупреждений директивами компилятора
«
Ответ #1 :
Июнь 22, 2012, 14:24 »
Номер предупреждения видно же в выхлопе компилятора
Записан
Odyssey
Гость
Re: Отключение избранных предупреждений директивами компилятора
«
Ответ #2 :
Июнь 22, 2012, 14:34 »
Да вот - смотрел в окне Compile Output и не нашел
(Qt Creator для Qt 4.5.3 под Линукс). Файл и номер "предупреждаемой" строки в файле есть, английское название предупреждения есть, номера нету.
Записан
mutineer
Гость
Re: Отключение избранных предупреждений директивами компилятора
«
Ответ #3 :
Июнь 22, 2012, 14:37 »
хм, действительно... Значит что-то перепутал
Записан
Fat-Zer
Гость
Re: Отключение избранных предупреждений директивами компилятора
«
Ответ #4 :
Июнь 22, 2012, 15:13 »
что за "номер предупреждения"? таких не знаю...
предупреждения задаются опциями компилятора. для unused variable: -Wno-unused-variable.
остальные смотреть в
man gcc
.
Записан
Odyssey
Гость
Re: Отключение избранных предупреждений директивами компилятора
«
Ответ #5 :
Июнь 25, 2012, 14:44 »
Вот как это было сделано в книге Саттера/Александреску. Как видите, здесь требуются номера предупреждений (чем еще могут быть "4512" и "4180"?)...
#pragma warning(push) //Отключение предупреждений только для данного заголовочного файла
#pragma warning(disable:4512)
#pragma warning(disable:4180)
#include "lib.h" //Исходная, "обертываемая" библиотека
#pragma warning(pop) //Восстанавливаем исходный уровень вывода предупреждений
Записан
Fat-Zer
Гость
Re: Отключение избранных предупреждений директивами компилятора
«
Ответ #6 :
Июнь 25, 2012, 17:56 »
все #pragma реализуются на усмотрение компилятора.
Саттера точно не про gcc писал...
gcc делает
так
.
Записан
Odyssey
Гость
Re: Отключение избранных предупреждений директивами компилятора
«
Ответ #7 :
Июнь 26, 2012, 10:50 »
Спасибо!
К сожалению, позже выяснилась непонятная вещь: мой компилятор игнорирует #pragma. То есть и те инструкции, которые давал Саттер, и инструкции по приведенной вами ссылке - компилятор выдает дополнительные предупреждения "ignoring #pragma".
Возможно, следует что-нибудь прописать в pro-файл (слабо знаком с собственно компилятором)?
(Вроде, стандартная сборка Qt 4.5.3, компилятор linux-g++)
Записан
Fat-Zer
Гость
Re: Отключение избранных предупреждений директивами компилятора
«
Ответ #8 :
Июнь 26, 2012, 21:38 »
версия gcc какая? эти прагмы появились в ветке 4.2....
Записан
Odyssey
Гость
Re: Отключение избранных предупреждений директивами компилятора
«
Ответ #9 :
Июнь 27, 2012, 08:05 »
Да, видимо, проблема в этом - у меня версия 3.3.6.
Значит, на этой версии провернуть трюк со временным отключением избранных предупреждений не получится? Может, есть какой-то другой инструмент для этой версии, пусть более грубый, отключающий/включающий, например, вообще все предупреждения?
Записан
Fat-Zer
Гость
Re: Отключение избранных предупреждений директивами компилятора
«
Ответ #10 :
Июнь 27, 2012, 15:38 »
вылезать из криокамеры пора... или по работе стоит МСВС какой-нить?
а так можно только на уровне файлов настраивая систему сборки, чтобы каждый файл со своими предупреждениями собирался... в cmake и autotools такое точно возможно... с qmake - вряд ли...
Записан
Odyssey
Гость
Re: Отключение избранных предупреждений директивами компилятора
«
Ответ #11 :
Июнь 27, 2012, 15:58 »
Вылез бы, да только он-с самый-с...
Всё ясно, придется 200 ворнингов терпеть... Ы...
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Отключение избранных предупреждений директивами компилятора
«
Ответ #12 :
Июнь 27, 2012, 16:07 »
Цитата: Odyssey от Июнь 27, 2012, 15:58
Вылез бы, да только он-с самый-с...
Всё ясно, придется 200 ворнингов терпеть... Ы...
Кто самый? MSVC понимает эти прагмы отлично (даже древняя шестерка).
Записан
LisandreL
Птица говорун
Offline
Сообщений: 984
Надо улыбаться
Re: Отключение избранных предупреждений директивами компилятора
«
Ответ #13 :
Июнь 27, 2012, 17:04 »
Цитата: Igors от Июнь 27, 2012, 16:07
Кто самый? MSVC понимает эти прагмы отлично (даже древняя шестерка).
МСВС
MSVC'у рознь.
Записан
Fat-Zer
Гость
Re: Отключение избранных предупреждений директивами компилятора
«
Ответ #14 :
Июнь 27, 2012, 18:52 »
а поправить то по поводу чего предупреждает ни как?
единственный ворнинг, который у меня не получилось исправить - это на си unused-parameter. на плюсах правится комментированием параметра...
ещё можно самому собрать свежачок, если разрешат... с людьми говорил - им обычно только ядро трогать запрещено, а в юзерспейсе копаться - сколько душе угодно...
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...