Referência indefinida a 'dlsym' e 'dlopen'
Estou compilando usando arm-linux-gnueabi-g ++ versão 4.7.3.
Eu tenho as bibliotecas arm-linux-gnueabi instaladas no local:
/ usr / arm-linux-gnueabi / lib, contém libdl.a, libdl.so, libdl.so.2 e libdl-2.19.so.
O libdl.so se vincula ao libdl.so.2, que se vincula ao libdl-2.19.so.
Estou tentando vincular a biblioteca dl (consulte a sequência de comandos abaixo), mas sempre recebo os erros de referência indefinidos.
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
Se eu compilar usando o g ++ 4.8.2 usando o seguinte comando, meu programa compila, vincula e executa bem.
g++ -I. -I../ -I../Comms/Linux -Wall -DLINUX -fpic -o ../../work/MyProgram main.o
-L../../work -lComms -lConsole -lUtilities -ldl
Obviamente, ele não pode encontrar a biblioteca libdl.so; Eu pensei que, adicionando o caminho para o local da biblioteca apropriada usando o-L
A bandeira resolveria o problema, mas não resolveu.
O que estou perdendo com o comando do compilador ARM?