操作系统make命令及Makefile文件
更深层次地理解请看文章:Linux下编写 makefile 详细教程https://www.cnblogs.com/mfryf/p/3305778.html
gcc
语法:gcc (选项) (参数) 选项: -o:指定生成的输出文件; -S:将C代码转换为汇编代码; -wall:显示警告信息; -c:仅执行编译操作,不进行连接操作; -M:列出依赖。 参数: C源文件:指定C语言源代码文件。
同时编译多个文件时,我们只需把多个文件名用空格隔开即可,如 gcc test1.c test2.c -o test .
将testfun.c编译成testfun.o gcc -c testfun.c 将test.c编译成test.o gcc -c test.c 将testfun.o和test.o链接成test gcc testfun.o test.o -o test
1 gcc test1.c -c test #对.c文件只进行编译,生成.o文件 2 gcc test.o test1.o -o test1 #将两个.o文件进行链接
1 CC = gcc 2 #生成的可执行文件名 3 EXE = main 4 #源文件路径 空格 可以继续添如 src src1 src2 5 SUBDIR = src 6 #.o文件存放路径 7 OBJ = obj 8 #.d文件存放路径 9 DEP = dep 10 11 #预处理选项(要包含的.h文件的路径) 12 CPPFLAGS += -I /home/kouwq/Makefile/grokking_algorithms/inc
Makefile文件
我们可以使用make指令执行Makefile文件里的内容。make 工具会读取 Makefile 文件,并根据 Makefile 的内容来执行相应的编译操作。Makefile 类似于大家以前接触过的 VC 工程文件。只不过不像 VC 那样有图形界面,而是直接用类似脚本的方式实现的。
1 如果我们没有 Makefile,直接动手编译这个程序,我们需要下面这样一个指令 3 # 直接使用 gcc 编译 Hello World 程序 4 $ gcc -o hello_world hello_world.c 5 那么,如果我们想把它写成 Makefile,我们应该怎么办呢?makefile 最基本的格式是这样的 7 target: dependencies 8 command 1 9 command 2 10 ... 11 command n 12 其中,target 是我们构建 (Build) 的目标,而 dependencies 是构建该目标所需的其它文件或其他目标。之后是构建出该目标所需执行的指令。有一点尤为需要注意:每一 个指令 (command) 之前必须有一个 TAB。这里必须使用 TAB 而不能是空格,否则make 会报错。 我们的简易的 Makefile 可以写成如下的样子,之后执行 make 即可产生 hello_world这个可执行文件。
all: hello_world.c
gcc -o hello_world hello_world