当前位置: 技术问答>linux和unix
如何写makefile文件
来源: 互联网 发布时间:2015-05-07
本文导语: 在Linux下编写一般的程序,可以运行,可是当系统大了后,编译起来就是问题了。我看了些makefile文件的写法,可是却不能用,不知道哪位高人,请多多指教! 例如:如果我有三个文件,file1.c,file2.c,file3.c 我要把这...
在Linux下编写一般的程序,可以运行,可是当系统大了后,编译起来就是问题了。我看了些makefile文件的写法,可是却不能用,不知道哪位高人,请多多指教!
例如:如果我有三个文件,file1.c,file2.c,file3.c 我要把这三个文件编译成一个可执行文件exeFile,在gcc下如何写这个makefile?
例如:如果我有三个文件,file1.c,file2.c,file3.c 我要把这三个文件编译成一个可执行文件exeFile,在gcc下如何写这个makefile?
|
到www.chinaunix.net的C/C++版的精华区,有如何写Makefile的中文介绍。
到网上找genmake,你的需求足可以满足。
更高级的应用,学习autoconf工具。看autobook。
到网上找genmake,你的需求足可以满足。
更高级的应用,学习autoconf工具。看autobook。
|
Example:
all: myexec
myexec:file1.o file2.o file3.o
gcc -o myexec file.o file2.o file3.o
file1.o: file1.c
gcc -c file1.c
file2.o: file2.c
gcc -c file2.c
file3.o: file3.c
gcc -c file3.c
clean:
rm -rf myexec *.o
要注意的一点是 每一个执行动作语句必须以一个Tab制表符开头。
建议学习autotools,这个更加方便。
all: myexec
myexec:file1.o file2.o file3.o
gcc -o myexec file.o file2.o file3.o
file1.o: file1.c
gcc -c file1.c
file2.o: file2.c
gcc -c file2.c
file3.o: file3.c
gcc -c file3.c
clean:
rm -rf myexec *.o
要注意的一点是 每一个执行动作语句必须以一个Tab制表符开头。
建议学习autotools,这个更加方便。
|
这个Makefile不够专业,应该这样:
CC= gcc
DEFS=
PROGNAME= urapp
INCLUDES= -I.
LIBS=
# replace -O with -g in order to debug
DEFINES= $(INCLUDES) $(DEFS) -DSYS_UNIX=1
CFLAGS= -O $(DEFINES)
SRCS = file1.c file2.c file3.c
OBJS = file1.o file2.o file3.o
.c.o:
rm -f $@
$(CC) $(CFLAGS) -c $*.c
all: $(PROGNAME)
$(PROGNAME) : $(OBJS)
$(CC) $(CFLAGS) -o $(PROGNAME) $(OBJS) $(LIBS)
clean:
rm -f $(OBJS) $(PROGNAME) core
CC= gcc
DEFS=
PROGNAME= urapp
INCLUDES= -I.
LIBS=
# replace -O with -g in order to debug
DEFINES= $(INCLUDES) $(DEFS) -DSYS_UNIX=1
CFLAGS= -O $(DEFINES)
SRCS = file1.c file2.c file3.c
OBJS = file1.o file2.o file3.o
.c.o:
rm -f $@
$(CC) $(CFLAGS) -c $*.c
all: $(PROGNAME)
$(PROGNAME) : $(OBJS)
$(CC) $(CFLAGS) -o $(PROGNAME) $(OBJS) $(LIBS)
clean:
rm -f $(OBJS) $(PROGNAME) core
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。