本文目录一览:
c语言 怎么makefile
my_run_filename: main.o set1.o set2.o set3.o
gcc -o my_run_filename main.o set1.o set2.o set3.o
main.o: main.c
gcc -c main.c
set1.o: set1.c
gcc - c set1.c
set2.o: set2.c
gcc -c set2.c
set3.o:set3.c
gcc -c set3.c
虽然我以前也使用过 make 命令对 makefile 文件进行多个源文件进行编译、链接,但是由于我已经很多年不编写 C 语言程序了,所以也不敢说我写的就完全正确。但是该 makefile的基本思路我可以给你解释一下:
my_run_filename: main.o set1.o set2.o set3.o
gcc -o my_run_filename main.o set1.o set2.o set3.o
my_run_filename 是最终生成的可执行程序名,它依赖于四个中间文件(以 *.o 为结尾):main.o set1.o set2.o set3.o
生成该最终可执行的程序名的命令是:gcc -o my_run_filename main.o set1.o set2.o set3.o
main.o: main.c
gcc -c main.c
main.o 这个中间文件依赖于 main.c 源程序,其中:gcc -c main.c 代表只编译、不链接。
gcc 的 -c 选项表示只产生 main.o 文件,等待所有模块单独编译通过了之后,再和别的一起进行链接。
其它 set1、set2、set3 同理。
虽然我知道 makefile 的大致思路,但是给我印象最深的就是:make 工具 对 makefile 文本文件的书写规则是相当苛刻的,你可能还需要花费较多的时间进行 make 调试。
编写一个makefile文件主要包含哪些内容
一、Makefile里有什么?
Makefile里主要包含了五个东西:显式规则、隐晦规则、变量定义、文件指示和注释。
1、显式规则。显式规则说明了,如何生成一个或多的的目标文件。这是由Makefile的书写者明显指出,要生成的文件,文件的依赖文件,生成的命令。
2、隐晦规则。由于我们的make有自动推导的功能,所以隐晦的规则可以让我们比较粗糙地简略地书写Makefile,这是由make所支持的。
3、变量的定义。在Makefile中我们要定义一系列的变量,变量一般都是字符串,这个有点你C语言中的宏,当Makefile被执行时,其中的变量都会被扩展到相应的引用位置上。
4、文件指示。其包括了三个部分,一个是在一个Makefile中引用另一个Makefile,就像C语言中的include一样;另一个是指根据某些情况指定Makefile中的有效部分,就像C语言中的预编译#if一样;还有就是定义一个多行的命令。有关这一部分的内容,我会在后续的部分中讲述。
5、注释。Makefile中只有行注释,和UNIX的Shell脚本一样,其注释是用“#”字符,这个就像C/C++中的“//”一样。如果你要在你的Makefile中使用“#”字符,可以用反斜框进行转义,如:“\#”。
最后,还值得一提的是,在Makefile中的命令,必须要以[Tab]键开始。
谁能简单明了的介绍一下c语言的makefile?
有篇《Linux下Makefile教程》值得一读。
没看懂Use this to make clean all and build all your exercises so far.的意思,先清理再构建?
对最开始的题可以这么写:
all:ext1
ext1:源文件
构建ext1的命令
.PHONY:all
然后make all和make ext1是一样的效果。名字如果不是Makefile、makefile、GNUmakefile之一,用make -f Makefile文件名 all或make -f Makefile文件名 ext1。
makefile 文件介绍?
makefile文件主要有以下五种组成部分。显式规则:显式规则说明了生成一个或多个目标文件的方法和步骤。这是在编写makefile文件时明显指出的,包括要生成的文件、生成文件的依赖文件以及生成的命令等。隐式规则:由于make工具有自动推导的功能,所以在编写makefile文件的时候可以利用该规则,简略地书写makefile。再由 make 工具本身自动推导需要使用的规则。变量的定义: make工具支持变量的定义,这些变量往往都是字符串,因此makefile中的变量更像是C语言中的宏。当makefile被执行时,其中的变量都会被展开到相应的引用位置上。
文件指示:其包括三个部分,一个是在一个makefile中引用另一个makefile,就像C语言中的include一样。另一个是指根据某些情况指定makefile中的有效部分,就像C语言中的预编译tlif一样。还有就是定义一个多行的命令。
注释: makefile 中支持行注释,这一点需要特别注意。makefile 中的注释和 shell脚本一样,其注释是用“#”字符。如果需要在 makefile中使用“#”字符,可以用‘\’对其进行转义。例如,“\#”表示一个‘#’字符。makefile文件的文件名最好命名为makefile或者Makefile。因为在默认的情况下,make命令会在当前目录下按顺序找寻这两个文件进行解释。用户也可以为makefile文件自定义一个文件名,例如,Make.makefile,Make.admin等。