Имеется 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 все работает замечательно.
Не совсем понимаю какие у меня есть выходы из данной ситуации. Первое что приходит в голову - возможно есть способ статически линковать рантайм
Продвижение своими сайтами как стратегия роста и независимости