Linker-Fehler unter Linux: "undefinierter Verweis auf"
Ich kann problemlos eine gemeinsam genutzte Bibliothek erstellen. Ich erstelle libcbitcoin.so (ohne Fehler) und versuche, eine Verknüpfung mit einer ausführbaren Datei sowie OpenSSL-Bibliotheken herzustellen. Ich benutze diesen Befehl:
gcc -L/media/sf_BitEagle_Projects/cbitcoin/build/bin -lcbitcoin \
-Wl-rpath,/media/sf_BitEagle_Projects/cbitcoin/build/bin -lssl -lcrypto \
-L/usr/local/ssl/lib/ -o /media/sf_BitEagle_Projects/cbitcoin/build/bin/testCBAddress \
/media/sf_BitEagle_Projects/cbitcoin/build/obj/testCBAddress.o \
/media/sf_BitEagle_Projects/cbitcoin/build/obj/CBOpenSSLCrypto.o
Das bin-Verzeichnis ist der Speicherort der Bibliothek. Das obj-Verzeichnis enthält die Objektdateien, die ich zu einer ausführbaren Datei verknüpfen möchte. Im Befehl verwende ich die Optionen -L, -l und -rpath, von denen ich dachte, dass sie alles sind, was zum Verknüpfen unter Linux erforderlich ist. Es scheint, dass ich falsch liege, da ich Fehler erhalte wie:
/media/sf_BitEagle_Projects/cbitcoin/test/testCBAddress.c:40:
undefined reference to `CBNewByteArrayFromString'
CBNewByteArrayFromString befindet sich in der Bibliothek. Aus irgendeinem Grund wird es nicht verlinkt. OpenSSL auch:
/media/sf_BitEagle_Projects/cbitcoin/dependencies/crypto/CBOpenSSLCrypto.c:37:
undefined reference to `SHA1'
Wie bringe ich die Verlinkung zum Laufen?
GCC-Version: gcc (Ubuntu / Linaro 4.6.3-1ubuntu5) 4.6.3
Unter Linux Mint 13
Vielen Dank.