[Qt] Как динамически загрузить dll (shared libraries) под Linux

Для этих целей используется класс QLibrary который является по сути оберткой над системными вызовами.
Но за частую, даже после того, как приложение с библиотекой собрано – библиотека не грузится. Проблема как правило в отличиях в именования разделяемых библиотек (тех же dll) и правилах их поиска.

Один из способов решения выглядит следующим образом (протестировано на Windows XP SP3 и KUbuntu 10.04):

QString libname = QApplication::applicationDirPath()+ "/libgoodslib.so"; //имя библиотеки в Linux
#ifdef Q_OS_WIN32
libname = "goodslib"; //Имя библиотеки в Windows
#endif
QLibrary lib(libname);

аналогично может быть выполнена проверка и для прочих систем.

©Varkon Ltd 2010
При перепечатке материала ссылка на данный сайт обязательна.
ООО Варкон. Высококачественный сервис и поддержка.

Если статья была полезна вам – не забывайте поделиться ею со своими друзьями в социальных сетях. Если есть вопросы – задавайте в комментариях либо в наших социальных группах.