SEGSEGV при загрузке libgtk-x11-2.0.so через boost dll
Проблема такая: загружаю с помощью boost dll библиотеку GTK+, с libgtk-3.so все работает нормально, но если ее нет то возможно есть версия GTK+2, но при попытке загрузить ее программа завершается с SEGSEGV.
#include <boost/dll.hpp>
#include <boost/dll/shared_library.hpp>
#include <boost/move/make_unique.hpp>
#include <boost/move/unique_ptr.hpp>
struct _GtkSettings;
using GtkSettings = _GtkSettings;
namespace dll = boost::dll;
class GtkLibraryLoader {
public:
GtkLibraryLoader();
private:
boost::shared_ptr<dll::shared_library> m_gtkLib;
using GtkFreeFuncT = dll::detail::library_function<void(void*)>;
boost::movelib::unique_ptr<GtkFreeFuncT> m_gtkFree;
using GtkGObjectGetFuncT = dll::detail::library_function<void(void*, const char*, ...)>;
boost::movelib::unique_ptr<GtkGObjectGetFuncT> m_gtkGObjectGet;
using GtkSettingsGetFuncT = dll::detail::library_function<GtkSettings*(void)>;
boost::movelib::unique_ptr<GtkSettingsGetFuncT> m_gtkSettingsGet;
};
GtkLibraryLoader::GtkLibraryLoader() : m_gtkLib(boost::make_shared<dll::shared_library>()) {
try {
m_gtkLib->load("/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so");
} catch (...) { }
}
int main() {
GtkLibraryLoader a;
}
Сама библиотека лежит в указанной директории, не понимаю почему программа сразу падает