当前位置: 技术问答>linux和unix
对 linux C 编程 makefile书写的疑问
来源: 互联网 发布时间:2016-11-08
本文导语: 本帖最后由 feilongzafei 于 2011-02-12 21:59:32 编辑 CC=gcc CFLAGS=-Wall -g -DDEBUG LDFLAGS= LIBS= all: 1-1 1-1: 1-1.c $(CC) -o $@ $(LDFLAGS) $^ $(LIBS) clean: rm -rf *.o 初学linux 对CFLAGS,LDFLAGS,LIBS的疑问,不知具体都什么作用 CFLAGS还行,赋了值...
CFLAGS=-Wall -g -DDEBUG
LDFLAGS=
LIBS=
all: 1-1
1-1: 1-1.c
$(CC) -o $@ $(LDFLAGS) $^ $(LIBS)
clean:
rm -rf *.o
初学linux
对CFLAGS,LDFLAGS,LIBS的疑问,不知具体都什么作用
CFLAGS还行,赋了值,而LDFLAGS,LIBS = 空,为什么还要写,难道是为了书写标准makefile,求高手帮解答一下。
|
CC,CFLAGS,LDFLAGS,LIBS一坨驮的都是变量的定义
make程序在解析makefile的时侯会把变量引用$(VAR)都替换成相应的定义,当然变量不赋值也是可以的,替换出来就是空
楼主这个应该是个模板文件,把gcc的参数按作用分类放到了几个变量里,这样要改gcc的参数,只要修改几个变量就行了,比较方便。这个并不是makefile要求要这么写。
make程序在解析makefile的时侯会把变量引用$(VAR)都替换成相应的定义,当然变量不赋值也是可以的,替换出来就是空
楼主这个应该是个模板文件,把gcc的参数按作用分类放到了几个变量里,这样要改gcc的参数,只要修改几个变量就行了,比较方便。这个并不是makefile要求要这么写。
|
1楼都说了。
如果是自己这个程序使用的Makefile,可以十分简单,不过,一般地,每个人都会有自己的模板,这样,只修改几个地方就可以适合不同的程序了。
所有的变量都在这句体现了:
$(CC) -o $@ $(LDFLAGS) $^ $(LIBS)
——当然,还有其它地方。
如果是自己这个程序使用的Makefile,可以十分简单,不过,一般地,每个人都会有自己的模板,这样,只修改几个地方就可以适合不同的程序了。
所有的变量都在这句体现了:
$(CC) -o $@ $(LDFLAGS) $^ $(LIBS)
——当然,还有其它地方。
|
推荐一个资料,GNU_make中文版.pdf csdn有的下,读一下几乎全明白了
|
LZ发了一些列的帖子。网友回复了。但是LZ不善于通过网友的回复自己去思考
自己不思考怎么会懂。
对 linux C 编程 makefile书写的疑问
对 linux C 编程 makefile书写的疑问(二)
对 linux C 编程 makefile书写的疑问(三)
自己不思考怎么会懂。
对 linux C 编程 makefile书写的疑问
对 linux C 编程 makefile书写的疑问(二)
对 linux C 编程 makefile书写的疑问(三)