Я могу создать общую библиотеку без проблем. Я создаю 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
Спасибо.