首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LWIP生成文件错误

LWIP生成文件错误
EN

Stack Overflow用户
提问于 2016-01-11 15:00:40
回答 1查看 622关注 0票数 0

在浏览了LWIP文档之后,我编写了一个简单的tcp回送服务器代码。为了编译它并创建一个可执行文件,我编写了以下Makefile。现在,当我运行命令make all时,它会为makefile中包含的每个.c文件提供错误。

文件结构如下: 1. tcp_server.c是我创建tcp服务器的主要文件。2.它使用"lwip-1.4.1/src/core/lwip/tcp.c“和"lwip-1.4.1/src/core/lwip/tcp_out.c”中定义的tcp_new()、tcp_bind()等函数,并给出了相应的编译路径。

我只是一个编写makefile的初学者,我已经编写了以下文件,查看GNU文档。

代码语言:javascript
复制
CC=gcc

CFLAGS= -g -Wall

LWIPDIR=../lwip-1.4.1/src

TARGET=tcp_server

INCLUDES= -I../lwip-1.4.1/src/include -I../STABLE-1_4_0/ports/unix/proj/lib\
        -I../STABLE-1_4_0/ports/unix/include -I../lwip-1.4.1/src/include/ipv4

LFLAGS= -L../STABLE-1_4_0/ports/unix/proj/lib/liblwip.so

#LIBS= -llwip

COREFILES=$(LWIPDIR)/core/tcp.c $(LWIPDIR)/core/tcp_out.c

VPATH = $(LWIPDIR)/core

OBJS = tcp_server.o tcp.o tcp_out.o

MAIN=tcp_server

all : edit

edit : $(OBJS)
        $(CC) $(CFLAGS) $(INCLUDES) -o edit $(OBJS) $(LFLAGS)

tcp_server.o : tcp_server.c tcp.o tcp_out.o
        $(CC) $(CFLAGS) $(INCLUDES) -c tcp_server.c $(LFLAGS)

tcp.o : $(LWIPDIR)/core/tcp.c
        $(CC) $(CFLAGS) $(INCLUDES) -c $(LWIPDIR)/core/tcp.c $(LFLAGS)

tcp_out.o : $(LWIPDIR)/core/tcp_out.c
        $(CC) $(CFLAGS) $(INCLUDES) -c $(LWIPDIR)/core/tcp_out.c  $(LFLAGS)

clean :
        rm -f *.o

所有文件都包含在"lwip-1.4.1/src/ include“中定义的某些头部,我相应地给了-I参数。但是,在运行make时,输出显示对lwip头文件中定义的所有函数的“未定义引用”。可能是什么原因?我哪里出问题了?

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-11 15:14:27

未定义的引用是链接器错误,因此您应该;

对于gcc,您应该使用-L来指定包含库的目录,并使用-l链接特定的库。例如,更改makefile中的行;

代码语言:javascript
复制
LFLAGS= -L../STABLE-1_4_0/ports/unix/proj/lib

删除LIBS之前的注释并更改此目标

代码语言:javascript
复制
edit : $(OBJS)
        $(CC) $(CFLAGS) $(INCLUDES) -o edit $(OBJS) $(LFLAGS) $(LIBS)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34724568

复制
相关文章

相似问题

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