1.使用linux编程怎么写makefileMakefile语法基础
在Linux下,自动化编译工具是通过make命令来完成的(一些工具厂商也提供了它们自己的make命令,如gmake等),make命令的基本格式如下:
make [-f makefile] [label]
它可以通过-f参数指定输入文件,当省略-f参数时,默认输入文件名为Makefile,由于我们通常不用这个-f参数,往往就用默认的Makefile文件名 。
Makefile是一个文本文件,它是基于一定的语法规则的,它的基本执行规则定义如下:
target : [prerequisites]
command
target 标签,用于标志当前构建的规则,它也可以是文件 。
prerequisites 依赖项,在构建该标签的时候先执行的规则
command make需要执行的命令 。(任意的Shell命令)
注意:Makefile的target是顶格写的,而Command需要加一个Tab键 。我这里为了排版看起来舒服点,每一行都多加了一个Tab键,如果要使用本文的Makefile示例,请去掉各行的第一个Tab键,否则make的时候报错 。
例如,我们编写一个简单的Makefile:
clean:
@echo "clean"
all:
@echo "all"
当我们直接执行make命令的时候,输出如下:
tianfang > make
clean
tianfang > make all
all
tianfang > make clean
clean
从中我们可以看到:默认情况下构建第一个标签 。可以通过在命令行参数中通过参数构建指定标签 。
2.linux下makefile用什么写1234567891011121314151617181920212223INC_PATH := -I./include/LIB_PATH := -L./lib/LIBS := $(LIB_PATH) -lerr -larmCC := gccLD := gccCFLAGS := -O2 -Wall $(INC_PATH)SRC_PATH := ./sourceSOURCE := $(SRC_PATH)/a.c\ $(SRC_PATH)/b.c\ $(SRC_PATH)/c.cTARGET := targetOBJS := a.o b.o c.o$(TARGET): $(OBJS) $(LD) -O2 -o $(TARGET) $(OBJS) $(LIBS)a.o : $(SRC_PATH)/a.c $(CC) $(CFLAGS) -c -o [email protected] $
install 。利用make工具,我们可以将大型的开发项目分解成为多个更易于管理的模块,对于一个包括几百个源文件的应用程序,使用make和
makefile工具就可以简洁明快地理顺各个源文件之间纷繁复杂的相互关系 。而且如此多的源文件,如果每次都要键入gcc命令进行编译的话,那对程序员
来说简直就是一场灾难 。而make工具则可自动完成编译工作,并且可以只对程序员在上次编译后修改过的部分进行编译 。因此,有效的利用make和
makefile工具可以大大提高项目开发的效率 。同时掌握make和makefile之后,您也不会再面对着Linux下的应用软件手足无措了 。
但令人遗憾的是,在许多讲述Linux应用的书籍上都没有详细介绍这个功能强大但又非常复杂的编译工具 。在这里我就向大家详细介绍一下make及其描述文件
makefile 。
Makefile文件
Make工具最主要也是最基本的功能就是通过makefile文件来描述源程序之间的相互关系并自动维护编译工作 。而makefile 文件需要按照某种语法进行编写,文件
中
需要说明如何编译各个源文件并连接生成可执行文件,并要求定义源文件之间的依赖关系 。makefile 文件是许多编译器--包括 Windows NT
下的编译器--维护编译信息的常用方法,只是在集成开发环境中,用户通过友好的界面修改 makefile 文件而已 。
4.哪位大神帮我下,怎么编写linux下makefile文件比如,你有个文件 hello.c:
# include <stdio.h>
main()
- 生鲜的周计划怎么写
- word目录省略号怎么打 word目录后面的省略号怎么打
- 人事关系怎么写
- 琴行的简历怎么写
- 百家姓氏怎么写
- 周年庆宣传怎么写
- 英语奋斗单词怎么写
- 文化节英语怎么写
- 会议指示牌怎么写
- 一的大写拼音怎么写