Błąd linkera w systemie Linux: „niezdefiniowane odniesienie do”

Jestem w stanie stworzyć wspólną bibliotekę bez problemów. Tworzę libcbitcoin.so (bez błędów) i próbuję połączyć się z nim za pomocą pliku wykonywalnego oraz bibliotek OpenSSL. Używam tego polecenia:

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

Katalog bin to lokalizacja biblioteki. Katalog obj zawiera pliki obiektów, które chcę połączyć z plikiem wykonywalnym. W poleceniu używam opcji -L, -l i -rpath, które uważałem za wszystko, co jest potrzebne do łączenia w Linuksie. Wygląda na to, że się mylę, ponieważ otrzymuję błędy takie jak:

/media/sf_BitEagle_Projects/cbitcoin/test/testCBAddress.c:40:
undefined reference to `CBNewByteArrayFromString'

CBNewByteArrayFromString znajduje się w bibliotece. Z jakiegoś powodu nie jest połączony. OpenSSL też:

/media/sf_BitEagle_Projects/cbitcoin/dependencies/crypto/CBOpenSSLCrypto.c:37:
undefined reference to `SHA1'

Jak mogę uzyskać link do pracy?

Wersja GCC: gcc (Ubuntu / Linaro 4.6.3-1ubuntu5) 4.6.3

W Linuksie Mennica 13

Dziękuję Ci.

questionAnswers(2)

yourAnswerToTheQuestion