Форум программистов, компьютерный форум CyberForum.ru

Visual Studio. Запрет компиляции при наличии варнингов - C++

Восстановить пароль Регистрация
 
Хохол
Эксперт C++
 Аватар для Хохол
475 / 443 / 13
Регистрация: 20.11.2009
Сообщений: 1,292
20.09.2011, 21:05     Visual Studio. Запрет компиляции при наличии варнингов #1
Для пущей безопасности хотелось бы, чтобы компилер отказывался компилить код, если есть варнинги. Есть такое где-нибудь в опциях?

Добавлено через 7 минут
Нашел. Project -> Properties -> C/C++ -> Treat Warnings As Errors -> Yes.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Евгений М.
1033 / 974 / 53
Регистрация: 28.02.2010
Сообщений: 2,817
Завершенные тесты: 2
21.09.2011, 12:13     Visual Studio. Запрет компиляции при наличии варнингов #2
На всякий случай. Для gcc "-Werror"
Хохол
Эксперт C++
 Аватар для Хохол
475 / 443 / 13
Регистрация: 20.11.2009
Сообщений: 1,292
05.10.2011, 23:41  [ТС]     Visual Studio. Запрет компиляции при наличии варнингов #3
Понадобилось аналогичное и для gcc. Пытаюсь использовать -Werror, чето не получается.
Компилю так:

"C:\Program Files\CodeBlocks\MinGW\bin\g++.exe" -Werror main.cpp -o main.exe

Скармливаю код, который точно должен вызывать варнинги. А он компилится совершенно молча.
Как правильно делать?
Евгений М.
1033 / 974 / 53
Регистрация: 28.02.2010
Сообщений: 2,817
Завершенные тесты: 2
06.10.2011, 05:31     Visual Studio. Запрет компиляции при наличии варнингов #4
-Wall -Werror
Хохол
Эксперт C++
 Аватар для Хохол
475 / 443 / 13
Регистрация: 20.11.2009
Сообщений: 1,292
06.10.2011, 09:30  [ТС]     Visual Studio. Запрет компиляции при наличии варнингов #5
Так тоже уже пробовал.

"C:\Program Files\CodeBlocks\MinGW\bin\g++.exe" -Wall -Werror main.cpp -o main.exe

Никаких изменений.
Евгений М.
1033 / 974 / 53
Регистрация: 28.02.2010
Сообщений: 2,817
Завершенные тесты: 2
06.10.2011, 09:39     Visual Studio. Запрет компиляции при наличии варнингов #6
Хм. Странно. А можно код?
Я только на этом пробовал:
C++
1
2
3
4
5
6
7
#include <iostream>
 
int main( )
{
    int a;
    std::cout << a << std::endl;
}
Хохол
Эксперт C++
 Аватар для Хохол
475 / 443 / 13
Регистрация: 20.11.2009
Сообщений: 1,292
06.10.2011, 10:14  [ТС]     Visual Studio. Запрет компиляции при наличии варнингов #7
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
 
int main()
{
    double d = 88.88;
    int x = d;
    long long a = 15455455454545LL;
    int p = a;
    std::cout << x+p;
}
Добавлено через 16 минут
Кстати, использование неинициализированной переменной он палит. Так что вроде как работает.
Но вот на моем коде выше молчит. Грош ему цена, если он опасное приведение типов не палит.
Думаю, можно его заставить быть строже, и такое тоже палить. Иначе чушь же.
Евгений М.
1033 / 974 / 53
Регистрация: 28.02.2010
Сообщений: 2,817
Завершенные тесты: 2
06.10.2011, 10:39     Visual Studio. Запрет компиляции при наличии варнингов #8
Только что в доках прочитал это:
Note that some warning flags are not implied by -Wall. .... Some of them are enabled by -Wextra but many of them must be enabled individually.
Буду век учить маны.
Для Вашего случая -Wconversion палит то что нужно.
Хохол
Эксперт C++
 Аватар для Хохол
475 / 443 / 13
Регистрация: 20.11.2009
Сообщений: 1,292
06.10.2011, 10:47  [ТС]     Visual Studio. Запрет компиляции при наличии варнингов #9
Большое спасибо.
Получается, могут быть и другие варнинги, которые я считаю важными, а он на них по умолчанию плюет. Жаль. Ну, будем знать.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.10.2011, 00:57     Visual Studio. Запрет компиляции при наличии варнингов
Еще ссылки по теме:

C++ Запрет нажатия определенной клавиши в консольном приложении (Visual Studio) W8
C++ Напишите команды компиляции и компоновки для Visual Studio
C++ MS Visual Studio 2013 Express при компиляции программа открывается и сразу закрывается

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Хохол
Эксперт C++
 Аватар для Хохол
475 / 443 / 13
Регистрация: 20.11.2009
Сообщений: 1,292
12.10.2011, 00:57  [ТС]     Visual Studio. Запрет компиляции при наличии варнингов #10
Выяснил, что не палится отсутствие return в не void функции, а зря.
Включается с помощью параметра -Wreturn-type.
Yandex
Объявления
12.10.2011, 00:57     Visual Studio. Запрет компиляции при наличии варнингов
Ответ Создать тему
Опции темы

Текущее время: 04:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru