Segmentation fault при dynamic_cast

107
24 января 2020, 02:30

Имеется freebsd 12, собранный из портов Qt5 и GCC7. Любое написанное приложение падает при dynamic_cast. Например:

struct base
{
   virtual void test() = 0;
};
struct derived : base
{
   virtual void test() override final {}
};
int main()
{
   base* some_base = new derived();
   derived* seg_fault_now = dynamic_cast<derived*>(some_base);
   return 0;
}

Падение происходит в недрах libcxxrt.so.1. Насколько я понял, это библиотека cpp runtime, и она собрана с помощью clang, который является стандартным для freebsd. На лицо несовместимость ПО собранного с помощью gcc и libcxxrt.so.1. Тем более, что если собрать приложение с помощью clang все работает замечательно.

Не совсем понимаю какие у меня есть выходы из данной ситуации. Первое что приходит в голову - возможно есть способ статически линковать рантайм

READ ALSO
Проблема с “FMeshDrawSingleShaderBindings”

Проблема с “FMeshDrawSingleShaderBindings”

VS2017 жалуется на "FMeshDrawSingleShaderBindings не определён"В UE4 всё компилируется без проблем и объект создаётся на сцене

124
Самый короткий способ записи в файл/чтения из него

Самый короткий способ записи в файл/чтения из него

Попался мне такой короткий код, который пытается читать из файла число, и если не может, то пишет туда то, что было в переменной (предполагается,...

122
Синхронизация вывода потоков POSIX

Синхронизация вывода потоков POSIX

Нужно что бы два потока параллельно печатали на экран(Первый поток печатает числа 1,2,3

131
как с вывести один элемент пары класса multimap?

как с вывести один элемент пары класса multimap?

Допустим у меня есть следующий код:

106