Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

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

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

visual studio 2010 ultimate. ошибка при компиляции!!! - C++
всем привет! решил изучать язык программирование C++ скачал штук 50 книг, открываю книгу, читаю:read: и тут:( написано что нужен...

Visual Studio 2012 Ошибка при компиляции программы - C++
Здравствуйте. Возникла проблема при компиляции данной программы: #include "stdafx.h" #include "string" #include "iostream" ...

Visual Studio C++. Вылетает ошибка при компиляции. Задание на матрицы - C++
// dz325.11.13.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include<iostream> using...

Visual Studio 2010 + Windows 7 x64. Ошибки при компиляции - C++
Здравствуйте. Использую Visual Studio 2010 и Windows 7 x64 Компилю код. Получаю экзешник. На компьютере запускается нормально. Пробую...

Работа с сокетами, ошибка при компиляции в Visual Studio 2013 - C++
Помогите пожалуйста в чем ошибка? // Server_new_chat.cpp : Defines the entry point for the console application. // #pragma...

Зависание или ошибка при компиляции microsoft Visual Studio 2008 - C++
microsoft Visual Studio 2008 писал на C++ Все раньше было хорошо. Возникла такая проблема. При компиляции программы не создается *.exe...

9
Евгений М.
1036 / 977 / 54
Регистрация: 28.02.2010
Сообщений: 2,829
Завершенные тесты: 2
21.09.2011, 12:13 #2
На всякий случай. Для gcc "-Werror"
1
Хохол
Эксперт С++
475 / 443 / 13
Регистрация: 20.11.2009
Сообщений: 1,292
05.10.2011, 23:41  [ТС] #3
Понадобилось аналогичное и для gcc. Пытаюсь использовать -Werror, чето не получается.
Компилю так:

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

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

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

Никаких изменений.
0
Евгений М.
1036 / 977 / 54
Регистрация: 28.02.2010
Сообщений: 2,829
Завершенные тесты: 2
06.10.2011, 09:39 #6
Хм. Странно. А можно код?
Я только на этом пробовал:
C++
1
2
3
4
5
6
7
#include <iostream>
 
int main( )
{
    int a;
    std::cout << a << std::endl;
}
0
Хохол
Эксперт С++
475 / 443 / 13
Регистрация: 20.11.2009
Сообщений: 1,292
06.10.2011, 10:14  [ТС] #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 минут
Кстати, использование неинициализированной переменной он палит. Так что вроде как работает.
Но вот на моем коде выше молчит. Грош ему цена, если он опасное приведение типов не палит.
Думаю, можно его заставить быть строже, и такое тоже палить. Иначе чушь же.
0
Евгений М.
1036 / 977 / 54
Регистрация: 28.02.2010
Сообщений: 2,829
Завершенные тесты: 2
06.10.2011, 10:39 #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 палит то что нужно.
1
Хохол
Эксперт С++
475 / 443 / 13
Регистрация: 20.11.2009
Сообщений: 1,292
06.10.2011, 10:47  [ТС] #9
Большое спасибо.
Получается, могут быть и другие варнинги, которые я считаю важными, а он на них по умолчанию плюет. Жаль. Ну, будем знать.
0
Хохол
Эксперт С++
475 / 443 / 13
Регистрация: 20.11.2009
Сообщений: 1,292
12.10.2011, 00:57  [ТС] #10
Выяснил, что не палится отсутствие return в не void функции, а зря.
Включается с помощью параметра -Wreturn-type.
0
12.10.2011, 00:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.10.2011, 00:57
Привет! Вот еще темы с ответами:

MS Visual Studio 2013 Express при компиляции программа открывается и сразу закрывается - C++
Вот код: #include &lt;iostream&gt; int main() { std::cout &lt;&lt; &quot;Hello&quot; &lt;&lt; ; system(&quot;pause&quot;); return 0; ...

Как правильно использовать заголовочные файлы при раздельной компиляции в MS Visual Studio? - C++
Если я использую функцию cout и cin в каждом модуле, мне нужно в каждом модуле прописывать : #include &lt;iostream&gt; using namespace std; ...

Запрет нажатия определенной клавиши в консольном приложении (Visual Studio) W8 - C++
Здравствуйте, мне нужно, что бы при нажатии сочетания клавиш(L. Shift+ L. Ctrl + F1) сделать нерабочей клавишу &quot;1&quot;, а при повторном нажатии...

Visual Studio Community 2017 ошибка компиляции - C++
Добрый вечер! Ребята, столкнулся с новой для меня ошибкой) Пол интернета перелазил так и не нашел ответа на свой вопрос. Список ошибок я...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

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