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