分类 Makefile 中的文章

make 调试方法

前言 驱动、内核等大型工程包含众多 .c .h 文件,如果手动一个个去编译这些文件是不现实的,通常的做法是使用 make 命令进行自动化编译。make 命令执行时,……

阅读全文

Makefile 变量和赋值

疑问 解答 学到 Makefile 先执行没有缩进的 再执行缩进的 进一步探索 变量的值到底在定义时扩展(静态扩展),还是在运行时扩展(动态扩展)? Makefile 一共提供了四个赋值……

阅读全文

make

编译 代码变成可执行文件,叫做编译(compile)。 构建 先编译这个,还是先编译那个,即编译的安排,叫做构建(build)。 make make 是最常用的构建……

阅读全文

Makefile

Makefile 的文件名 默认情况下,make 命令会在当前目录下按顺序寻找文件名为 “GNUmakefile”、“makefile”、……

阅读全文

make 常见错误及解决办法

Makefile hello.out : hello.c gcc -o hello.out hello.c (警告)没有声明 warning: implicit declaration of function ‘xxx’ hello.c #include <stdio.h>#include <stdlib.h> int main(int argc, char *argv[]) { printf("hello\n"); add(); return EXIT_SUCCESS; } int add() { } $ make gcc -o hello.out hello.c hello.c: In function ‘main’: hello.c:8:5: warning: implicit declaration of function ‘ad……

阅读全文

Makefile include

tree liyongjun@Box:~/project/c/app$ ls main.c Makefile Makefile.inc main.c #include <stdio.h>#include <unistd.h>int main(int argc, char *argv[]) { int i = 0; while(1) { printf("hello world %d\n", i++); fflush(stdout); sleep(1); } return 0; } Makefile.inc all: gcc main.c -o main clean: rm main Makefile include Makefile.inc 执行 liyongjun@Box:~/project/c/app$ make gcc main.c -o main liyongjun@Box:~/project/c/app$ ./main hello world 0 hello world 1 hello world 2 ^C liyongjun@Box:~/project/c/app$ make clean rm main liyongjun@Box:~/project/c/app$ Makefile……

阅读全文

Makefile

语法规则: targets : prerequisites command targets 也就是一个目标文件,可以是 Object File,也可以是可执行文件,还可以是一个标签(伪目标)。 prerequisites 就是,要生成的那个target所……

阅读全文