原作者:超超boy
链接:http://www.cnblogs.com/jycboy/p/5084402.html
根据老师的要求,写一个超简单的makefile
准备:
准备三个文件:file1.c, file2.c, file2.h
file1.c:
1 2 3 4 5 6 7 | #include "file2.h" int main() { printf("print file1$$$$$$$$$$$$$$$$$$$$$$$$\n"); File2Print(); return 0; } |
file2.h:
#include <stdio.h> #ifndef FILE2_H_ #define FILE2_H_ #ifdef __cplusplus extern "C" { #endif void File2Print(); #ifdef __cplusplus } #endif #endif
file2.c:
1 2 3 4 5 | #include "file2.h" void File2Print() { printf("Print file2**********************\n"); } |
基础:
先来个例子:
有这么个Makefile文件。(文件和Makefile在同一目录)
=== makefile 开始 ===
helloworld:file1.o file2.o gcc file1.o file2.o -o helloworld file1.o:file1.c file2.h gcc -c -o file1.o file1.c file2.o:file2.c file2.h gcc -c -o file2.o file2.c
一个 makefile 主要含有一系列的规则,如下:
目标文件:依赖文件
(tab)<command>
(tab)<command>
每个命令行前都必须有tab符号。
上面的makefile文件目的就是要编译一个helloworld的可执行文件。让我们一句一句来解释:
helloworld : file1.o file2.o: helloworld依赖file1.o file2.o两个目标文件。
gcc file1.o file2.o -o helloworld: 编译出helloworld可执行文件。-o表示你指定 的目标文件名。
file1.o : file1.c file2.h: file1.o依赖file1.c文件。
gcc -c file1.c -o file1.o:编译出file1.o文件。-c表示gcc 只把给它的文件编译成目标文件, 用源码文件的文件名命名但把其后缀由“.c”或“.cc”变成“.o”。在这句中,可以省略-o file1.o,编译器默认生成file1.o文件,这就是-c的作用。
file2.o : file2.c file2.h
gcc -c file2.c -o file2.o
这两句和上两句相同。
如果要编译cpp文件,只要把gcc改成g++就行了。
写好Makefile文件,在命令行中直接键入make命令,就会执行Makefile中的内容了。
结果如图:

本文介绍了一个简单的Makefile实例,通过创建三个文件(file1.c, file2.c, file2.h)来展示如何使用Makefile进行编译。Makefile包含了规则定义,用于编译目标文件并最终生成可执行文件。

&spm=1001.2101.3001.5002&articleId=79318926&d=1&t=3&u=9c17cb8300484a8882e363e2ca1230fd)
8514

被折叠的 条评论
为什么被折叠?



