Неопределенная ссылка на 'dlsym' и 'dlopen'
Я компилирую с использованием arm-linux-gnueabi-g ++ версии 4.7.3.
У меня есть библиотеки arm-linux-gnueabi, установленные по адресу:
/ usr / arm-linux-gnueabi / lib, содержит libdl.a, libdl.so, libdl.so.2 и libdl-2.19.so.
libdl.so ссылается на libdl.so.2, который ссылается на libdl-2.19.so.
Я пытаюсь установить связь с библиотекой dl (см. Строку команды ниже), но всегда получаю неопределенные ошибки ссылок.
arm-linux-gnueabi-g++ -I. -I../ -I../Comms/Linux -Wall -DLINUX -fpic -o ../../work/MyProgram main.o
-L../../work -L/usr/arm-linux-gnueabi/lib -lComms -lConsole -lUtilities -ldl
../../work/libUtilities.so: undefined reference to `dlsym'
../../work/libUtilities.so: undefined reference to `dlopen'
collect2: error: ld returned 1 exit status
Если я компилирую, используя g ++ 4.8.2, используя следующее commend, тогда моя программа компилируется, связывается и выполняется нормально.
g++ -I. -I../ -I../Comms/Linux -Wall -DLINUX -fpic -o ../../work/MyProgram main.o
-L../../work -lComms -lConsole -lUtilities -ldl
Очевидно, он не может найти библиотеку libdl.so; Я думал, что, добавив путь к местоположению соответствующей библиотеки с помощью-L
Флаг решит проблему, но это не так.
Чего мне не хватает в команде компилятора ARM?