重複の可能性:
Linux でのリンカー エラー: 「未定義の参照」</a>
次のような共有ライブラリをリンクします。
core : $(CORE_OBJS) | bin
$(CC) $(LFLAGS) -o bin/libcbitcoin$(LIBRARY_EXTENSION) $(CORE_OBJS)
これにより、ライブラリ ファイル libcbitcoin.2.0.so が生成されます。
しかし、ライブラリにリンクする実行可能ファイルが作成されると、リンカーは、表示される各シンボルへの未定義の参照があると不平を言います。makefile は、次のように実行可能ファイルをリンクします。
$(TEST_BINARIES): bin/%: build/%.o
$(CC) -lcbitcoin.$(LIBRARY_VERSION) -lpthread -lcbitcoin-crypto.$(LIBRARY_VERSION) -lcbitcoin-network.$(LIBRARY_VERSION) -lcbitcoin-file-ec.$(LIBRARY_VERSION) -lcbitcoin-storage.$(LIBRARY_VERSION) -lcbitcoin-rand.$(LIBRARY_VERSION) -L/opt/local/lib -levent_core -levent_pthreads -lcrypto -L$(BINDIR) $< -o $@
これにより、リンカー オプションが提供されます-lcbitcoin.2.0
。
OSXではなくLinux Mint用にビルドしようとしたときにのみ、この問題が発生します。完全なメイクファイルはこちら: https://github.com/MatthewLM/cbitcoin/blob/newNetworkCode/Makefile.in
autoconf ファイルはここにあります (いずれにしても重要な場合): https://github.com/MatthewLM/cbitcoin/blob/newNetworkCode/configure.ac
助けてくれてありがとう。