Undefinierter Verweis auf 'dlsym' und 'dlopen'
Ich kompiliere mit arm-linux-gnueabi-g ++ Version 4.7.3.
Ich habe die arm-linux-gnueabi-Bibliotheken am folgenden Ort installiert:
/ usr / arm-linux-gnueabi / lib enthält libdl.a, libdl.so, libdl.so.2 und libdl-2.19.so.
libdl.so verlinkt auf libdl.so.2, der auf libdl-2.19.so verweist.
Ich versuche, eine Verknüpfung zur DLL-Bibliothek herzustellen (siehe Befehlsfolge unten), erhalte jedoch immer die undefinierten Referenzfehler.
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
Wenn ich mit g ++ 4.8.2 kompiliere und den folgenden Befehl verwende, kompiliert, verlinkt und führt mein Programm einwandfrei aus.
g++ -I. -I../ -I../Comms/Linux -Wall -DLINUX -fpic -o ../../work/MyProgram main.o
-L../../work -lComms -lConsole -lUtilities -ldl
Offensichtlich kann die Bibliothek libdl.so nicht gefunden werden. Ich dachte, dass durch Hinzufügen des Pfads zum Speicherort der entsprechenden Bibliothek mithilfe des-L
flag würde das Problem beheben, tat es aber nicht.
Was fehlt mir beim ARM-Compiler-Befehl?