С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602

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

24.02.2017, 01:23. Показов 1542. Ответов 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
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.02.2017, 01:23
Ответы с готовыми решениями:

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

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

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

3
Неэпический
 Аватар для Croessmah
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,026
Записей в блоге: 1
24.02.2017, 01:50
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
Собрал ваш пример tdm gcc 5.1.0. Никаких __gxx_personality_v0 в экзешнике нет, все собралось и работает. А какая версия gcc у вас?
1
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
24.02.2017, 02:46  [ТС]
Цитата Сообщение от Croessmah Посмотреть сообщение
g++ -o main.exe -nostdlib -fno-exeptions main.cpp -luser32
Хм, запустил через командную строку - нет проблемы. Запустил компиляцию из QtCreator - есть проблема. Разобрался - QtCreator добавлял от себя fexceptions, который затенял fno-exceptions. Сделал CONFIG+=exceptions_off, все заработало.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.02.2017, 02:46
Помогаю со студенческими работами здесь

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

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

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

Mingw-w64 MinGW TDM-GCC
Всем привет. Хочу понять, существует ли принципиальная разница между Mingw-w64, MinGW и TDM-GCC? Какие плюсы/минусы у этих трех...

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru