Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
2706 / 1875 / 554
Регистрация: 05.06.2014
Сообщений: 5,447
1

Mingw и отключение обработки исключений

24.02.2017, 01:23. Просмотров 643. Ответов 3
Метки нет (Все метки)


Даю Mingw флаги nostdlib и fno-exceptions, скармливаю программу из одной строчки MessageBoxA(NULL,"","",MB_OK);, все компилируется. Сую эту строчку в деструктор. Не компилируется - undefined reference to `__gxx_personality_v0'. Лезу в Гугл, узнаю что __gxx_personality_v0 нужно для раскрутки стека при броске исключения. Использование исключений запрещено. Использование стандартных библиотек запрещено. В программе используется только WinAPI. Но мне все равно пытаются впихнуть код для обработки исключений.

Вопрос: так можно ли как-то заставить Mingw не генерировать код для обработки исключений, если я обязуюсь нигде их не использовать? Ну да, я уже нашел костыль "объяви где ни будь void*__gxx_personality_v0 и компилятор успокоится". Но этож именно что костыль.
C++
1
2
3
4
5
6
7
8
9
10
11
#include<windows.h>
struct test
{
    ~test(){MessageBoxA(NULL,"","",MB_OK);}
};
 
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
    test t;
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.02.2017, 01:23
Ответы с готовыми решениями:

Обработка исключений с пмощью структурированной обработки исключений
Есть функция, которая определенным образом работает с файлами,но при работе с файлами &quot;не...

Создание обработки исключений на даты
Доброго времени суток! Как создать обработку исключительных ситуаций на неверно введенные даты?

Проверить правильность обработки исключений
само уравнение - a - bx = sqrt(x+c); #include &lt;windows.h&gt; #include &lt;cmath&gt; #include &lt;iostream&gt;...

Механизмы обработки исключений / Нужен пример
Пишу курсовую работу на тему, аналогичную заголовку этой темы. Проблема в том, что у нас убрали...

3
Don't worry, be happy
16968 / 9849 / 1897
Регистрация: 27.09.2012
Сообщений: 24,422
Записей в блоге: 1
24.02.2017, 01:50 2
g++ -o main.exe -nostdlib -fno-exeptions main.cpp -luser32
Проблемы такой нет. Воспроизвести пока не удалось.

gcc version 5.3.0 (i686-posix-dwarf-rev0, Built by MinGW-W64 project)
1
56 / 56 / 31
Регистрация: 24.10.2016
Сообщений: 186
24.02.2017, 01:52 3
Собрал ваш пример tdm gcc 5.1.0. Никаких __gxx_personality_v0 в экзешнике нет, все собралось и работает. А какая версия gcc у вас?
1
2706 / 1875 / 554
Регистрация: 05.06.2014
Сообщений: 5,447
24.02.2017, 02:46  [ТС] 4
Цитата Сообщение от Croessmah Посмотреть сообщение
g++ -o main.exe -nostdlib -fno-exeptions main.cpp -luser32
Хм, запустил через командную строку - нет проблемы. Запустил компиляцию из QtCreator - есть проблема. Разобрался - QtCreator добавлял от себя fexceptions, который затенял fno-exceptions. Сделал CONFIG+=exceptions_off, все заработало.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.02.2017, 02:46

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Как лучше построить механизм обработки ошибок на основе исключений?
Доброго дня! Я сейчас разрабатываю проект и хочу спросить: как лучше построить механизм обработки...

Может ли MinGW x64 компилить приложения x32? Или нужно для этого отдельно ещё MinGW х32 качать?
Просто решил поиграться с CodeLite.

Mingw-w64 MinGW TDM-GCC
Всем привет. Хочу понять, существует ли принципиальная разница между Mingw-w64, MinGW и...

Библиотека обработки исключений на Си
Здравствуйте. Есть ли для си какие либо стоящие библиотеки структурной обработки исключений? Каким...


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

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

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