@KotomeNami

Как заставить clang обрабатывать исключения (windows, c++)?

MSVC компилирует код на C++ (x64), и исключения при этом работают хорошо. При попытке тот же код скомпилировать при помощи clang, код компилируется нормально, а исключения при этом не работают, и приложение падает при попытке запуска. Когда-то давно вроде бы была информация, что нужно как-то подключать к проекту libunwind, который (возможно) из состава llvm. Но как это сделать - не знаю. И правильно ли так делать - тоже не знаю. Помогите пожалуйста!
Код:
#include <iostream>
#include <stack>

int main(int argc, char * argv[])
{
	std::stack<int> object1;
	std::cout << "app started!\r\n";
	try
	{
		object1.pop();
	}
	catch(...)
	{
		std::cout << "exception catched!\r\n";
	}
	return 0;
}

Командная строка при компиляции

Компиляция выполняется из x64 Native Tools Command Prompt for VS 2019, который идёт в комплекте с Windows SDK (на сайте Microsoft можно скачать ISO).

cl -o hworld.MSVC.exe hworld.cpp
clang -fexceptions -m64 -o hworld.CLANG.exe hworld.cpp
  • Вопрос задан
  • 125 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы