首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >链接protobuf库的问题

链接protobuf库的问题
EN

Stack Overflow用户
提问于 2013-02-03 11:46:13
回答 1查看 3.5K关注 0票数 2

我不熟悉makefile,这是我的makefile

代码语言:javascript
复制
CC = gcc

TARGET = sample_client sample_server

CFLAGS += -g -I/usr/include
LDFLAGS += -g -lprotobuf-c -L/usr/lib

all:    $(TARGET)

$(TARGET):  lsp.o lspmessage.pb-c.o

%.o:    %.c
    $(CC) -c $(CFLAGS) $< -o $@

clean:
    rm -f *.o 
    rm -f $(TARGET)

当我运行Make -f make时,我得到了这些错误。

代码语言:javascript
复制
**@**:./$ make -f Makefile
gcc -g -I/usr/include  -g -lprotobuf-c -L/usr/lib  sample_client.c lsp.o lspmessage.pb-c.o   -o sample_client
lspmessage.pb-c.o: In function `lspmessage__get_packed_size':
./lspmessage.pb-c.c:19: undefined reference to `protobuf_c_message_get_packed_size'
lspmessage.pb-c.o: In function `lspmessage__pack':
./lspmessage.pb-c.c:26: undefined reference to `protobuf_c_message_pack'
lspmessage.pb-c.o: In function `lspmessage__pack_to_buffer':
./lspmessage.pb-c.c:33: undefined reference to `protobuf_c_message_pack_to_buffer'
lspmessage.pb-c.o: In function `lspmessage__unpack':
/home/**/Downloads/CSCE662/HW/skeleton-code/lspmessage.pb-c.c:41: undefined reference to `protobuf_c_message_unpack'
lspmessage.pb-c.o: In function `lspmessage__free_unpacked':
./lspmessage.pb-c.c:50: undefined reference to `protobuf_c_message_free_unpacked'
collect2: error: ld returned 1 exit status
make: *** [sample_client] Error 1

我不知道原因。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-03 16:13:58

C链接器的工作方式是只搜索文件后面的库。

尝试按如下方式重新排序行:

gcc -g -I/usr/include -g sample_client.c lsp.o lspmessage.pb-c.o -o sample_client -L/usr/lib -lprotobuf-c

您可以首先从命令行运行该命令,以查看问题是否已修复。在此之后,要修复您的Makefile,请参阅此问题How to use LDFLAGS in makefile

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14669299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档