操作系统make命令与Makefile文件编写

操作系统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

原文地址:https://www.cnblogs.com/ye-buaascse/p/10511484.html