【发布时间】:2013-02-02 19:57:28
【问题描述】:
我像这样链接一个共享库:
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。
当我尝试为 Linux Mint 而不是 OSX 构建时,我只会遇到这个问题。完整的 makefile 在这里:https://github.com/MatthewLM/cbitcoin/blob/newNetworkCode/Makefile.in
autoconf 文件在这里(如果它很重要的话):https://github.com/MatthewLM/cbitcoin/blob/newNetworkCode/configure.ac
感谢您的帮助。
【问题讨论】:
-
我知道我之前已经解决了这个问题,但我找不到。所以是的,它是重复的。 :-(
标签: c linux gcc shared-libraries ld