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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Хохол
Эксперт C++
 Аватар для Хохол
475 / 443 / 13
Регистрация: 20.11.2009
Сообщений: 1,292
#1

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

20.09.2011, 21:05. Просмотров 804. Ответов 9
Метки нет (Все метки)

Для пущей безопасности хотелось бы, чтобы компилер отказывался компилить код, если есть варнинги. Есть такое где-нибудь в опциях?

Добавлено через 7 минут
Нашел. Project -> Properties -> C/C++ -> Treat Warnings As Errors -> Yes.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.09.2011, 21:05     Visual Studio. Запрет компиляции при наличии варнингов
Посмотрите здесь:

C++ Зависание или ошибка при компиляции microsoft Visual Studio 2008
visual studio 2010 ultimate. ошибка при компиляции!!! C++
Visual Studio 2010 + Windows 7 x64. Ошибки при компиляции C++
C++ ошибки компиляции консоли с++ и zlib 1.1.3, visual studio 2010
Visual Studio 2012 и Orwell Dev-C++ - ускорение компиляции C++
C++ Visual Studio 2012 Ошибка при компиляции программы
Visual Studio C++. Вылетает ошибка при компиляции. Задание на матрицы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Евгений М.
1034 / 975 / 53
Регистрация: 28.02.2010
Сообщений: 2,819
Завершенные тесты: 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

Скармливаю код, который точно должен вызывать варнинги. А он компилится совершенно молча.
Как правильно делать?
Евгений М.
1034 / 975 / 53
Регистрация: 28.02.2010
Сообщений: 2,819
Завершенные тесты: 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

Никаких изменений.
Евгений М.
1034 / 975 / 53
Регистрация: 28.02.2010
Сообщений: 2,819
Завершенные тесты: 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 минут
Кстати, использование неинициализированной переменной он палит. Так что вроде как работает.
Но вот на моем коде выше молчит. Грош ему цена, если он опасное приведение типов не палит.
Думаю, можно его заставить быть строже, и такое тоже палить. Иначе чушь же.
Евгений М.
1034 / 975 / 53
Регистрация: 28.02.2010
Сообщений: 2,819
Завершенные тесты: 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++ Работа с сокетами, ошибка при компиляции в Visual Studio 2013
Как правильно использовать заголовочные файлы при раздельной компиляции в MS Visual Studio? C++

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

Или воспользуйтесь поиском по форуму:
Хохол
Эксперт 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. Запрет компиляции при наличии варнингов
Ответ Создать тему
Опции темы

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