Ошибка компоновщика в Linux: «неопределенная ссылка на»
Я могу сделать общую библиотеку без проблем. Я создаю libcbitcoin.so (без ошибок) и пытаюсь связать его с помощью исполняемого файла, а также библиотек OpenSSL. Я использую эту команду:
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
Каталог bin - это местоположение библиотеки. В каталоге obj есть объектные файлы, которые я хочу связать в исполняемый файл. В этой команде я использую опции -L, -l и -rpath, которые, как мне показалось, были всем, что нужно для компоновки в linux. Кажется, я ошибаюсь, так как я получаю такие ошибки, как:
/media/sf_BitEagle_Projects/cbitcoin/test/testCBAddress.c:40:
undefined reference to `CBNewByteArrayFromString'
CBNewByteArrayFromString находится в библиотеке. По какой-то причине это не связано. OpenSSL тоже:
/media/sf_BitEagle_Projects/cbitcoin/dependencies/crypto/CBOpenSSLCrypto.c:37:
undefined reference to `SHA1'
Как мне получить ссылку на работу?
Версия GCC: gcc (Ubuntu / Linaro 4.6.3-1ubuntu5) 4.6.3
В Linux Mint 13
Спасибо.