对于源文件较多的 c/c++项目,直接在 shell 中使用 gcc/clang 进行编译会十分麻烦,makefile 可以解决这一问题。Makefile 记录了项目的编译规则,当使用 make 命令进行项目的编译时,make 命令会使用 makefile 中记录的规则,一步步地编译、链接,生成目标 ...
分类:
其他好文 时间:
2020-07-26 15:40:29
阅读次数:
62
1、编译进内核的模块 如果需要将一个模块配置进内核,需要在makefile中进行配置: obj-y += foo.o 2、编译可加载的模块 所有在配置文件中标记为-m的模块将被编译成可加载模块.ko文件。 如果需要将一个模块配置为可加载模块,需要在makefile中进行配置: obj-m += fo ...
分类:
系统相关 时间:
2020-07-22 11:35:13
阅读次数:
85
更新函数库文件 函数库文件也就是对Object文件(程序编译的中间文件)的打包文件。在Unix下,一般是由命令"ar"来完成打包工作。 一、函数库文件的成员 一个函数库文件由多个文件组成。你可以以如下格式指定函数库文件及其组成: archive(member) 这个不是一个命令,而一个目标和依赖的定 ...
分类:
其他好文 时间:
2020-07-20 22:44:45
阅读次数:
92
第一种: # 目录树结构如: # . # ├── exec # ├── exec.c # ├── fork # ├── fork.c # ├── Makefile # 对于自己做的一些小练习,用这样的Makefile非常方便 SRC = $(wildcard *.c) TARGETS = $(pat ...
分类:
其他好文 时间:
2020-07-19 11:41:12
阅读次数:
57
Makefile使用函数 1、函数的调用语法 函数调用,很像变量的使用,也是以“$”来标识的,其语法如下: $(<function> <arguments>) 或是 ${<function> <arguments>} 这里,<function>就是函数名,make支持的函数不多。<arguments ...
分类:
其他好文 时间:
2020-07-18 22:08:28
阅读次数:
56
Makefile-make的运行 1、make的退出码 make命令执行后有三个退出码: 0 —— 表示成功执行。 1 —— 如果make运行时出现任何错误,其返回1。 2 —— 如果你使用了make的“-q”选项,并且make使得一些目标不需要更新,那么返回2。 2、指定Makefile 前面我们 ...
分类:
其他好文 时间:
2020-07-18 22:00:45
阅读次数:
59
Makefile隐晦规则 1、综述 在我们使用Makefile时,有一些我们会经常使用,而且使用频率非常高的东西,比如,我们编译C/C++的源程序为中间目标文件(Unix下是[.o]文件,Windows下是[.obj]文件)。本章讲述的就是一些在Makefile中的“隐含的”,早先约定了的,不需要我 ...
分类:
其他好文 时间:
2020-07-18 21:57:40
阅读次数:
81
Makefile条件判断 1、示例 下面的例子,判断$(CC)变量是否“gcc”,如果是的话,则使用GNU函数编译目标。 libs_for_gcc = -lgnu normal_libs = foo: $(objects) ifeq ($(CC),gcc) $(CC) -o foo $(object ...
分类:
其他好文 时间:
2020-07-18 19:49:38
阅读次数:
61
Makefile书写命令 1、显示命令 通常,make会把其要执行的命令行在命令执行前输出到屏幕上。当我们用“@”字符在命令行前,那么,这个命令将不被make显示出来,最具代表性的例子是,我们用这个功能来像屏幕显示一些信息。如: @echo 正在编译XXX模块...... 当make执行时,会输出“ ...
分类:
其他好文 时间:
2020-07-18 15:57:33
阅读次数:
59
Makefile总述 1、Makefile组成元素 Makefile五大元素:显示规则、隐晦规则、变量定义、文件指示、注释。 1、显式规则。显式规则说明了,如何生成一个或多的的目标文件。这是由Makefile的书写者明显指出,要生成的文件,文件的依赖文件,生成的命令。 2、隐晦规则。由于我们的mak ...
分类:
其他好文 时间:
2020-07-18 15:43:00
阅读次数:
54