Я все погуглил! Признательность всем, кто может мне помочь …
Я построил test.so и хотите вызвать его динамически, используя dlopen (), dlsym () и т. д., определенные в dlfcn.h
я может скомпилировать моя вызывающая программа (main.cpp) в командной строке без ошибок
g++ main.cpp -ldl -o myprog
Без ключа -ldl я получаю сообщение об ошибке: неопределенная ссылка dlopen ().
Кроме того, если параметр -ldl не помещен после исходного файла в списке аргументов g ++, я получаю ту же ошибку.
У меня такой вопрос: как я могу скомпилировать свой main.cpp в Qt Creator?
Qt Creator сообщает об этой же ошибке: неопределенная ссылка dlopen ()
Я пытался напрямую добавить -ldl к флагам в Makefile (CFLAGS, CXXFLAGS, LFLAGS), но безрезультатно. (Возможно, флаги вставляются перед исходными файлами, где -ldl не работает?)
Вот мой main.cpp:
#include <dlfcn.h>
int main()
{
void* handle = dlopen("./test.so", RTLD_LAZY);
return 0;
}
Я использую Qt Creator 2.4.1 на Linux
Большое спасибо 🙂
В вашем project_name.pro
файл, вы должны добавить в LIBS
переменная вот так:
LIBS += -ldl