問題なく共有ライブラリを作成できます。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 の場合
ありがとうございました。