Linux平台Makefile文件的编写基础入门(课堂作业)
2015-12-28 23:39
639 查看
根据老师的要求,写一个超简单的makefile
准备:
准备三个文件:file1.c, file2.c, file2.h
file1.c:
file2.h:
file2.c:
基础:
先来个例子:
有这么个Makefile文件。(文件和Makefile在同一目录)
=== makefile 开始 ===
一个 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中的内容了。
结果如图:
![](http://images2015.cnblogs.com/blog/747969/201512/747969-20151228233707714-923216694.png)
另附好博链接:http://goodcandle.cnblogs.com/archive/2006/03/30/278702.html
http://blog.csdn.net/liang13664759/article/details/1771246
准备:
准备三个文件:file1.c, file2.c, file2.h
file1.c:
#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:
#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中的内容了。
结果如图:
![](http://images2015.cnblogs.com/blog/747969/201512/747969-20151228233707714-923216694.png)
另附好博链接:http://goodcandle.cnblogs.com/archive/2006/03/30/278702.html
http://blog.csdn.net/liang13664759/article/details/1771246
相关文章推荐
- linux 中 timeval结构体
- linux命令
- linux初级,连网
- Linux下安装Source Navigator
- linux YouCompleteMe 安装和使用笔记
- CentOS 系统启动流程(图)
- Linux下USB转串口的驱动
- Linux内存管理原理
- windows+centos安装
- 【操作系统】U盘如何挂载到Linux系统上
- linux下不能使用shutdown命令
- Linux多线程实践(二)线程基本API(POSIX)
- 教你如何在linux下制作补丁文件
- Linux中查看文本文件内容命令cat/tac/nl/more/less/head/tail/vi总结
- Linux中查看文本文件内容命令cat/tac/nl/more/less/head/tail/vi总结
- Centos 7 防火墙firewall配置
- Git - Download for Linux and Unix
- 浅谈Linux环境下,为什么设置用户ID位对shell脚本无效
- Linux 集群文件系统简介
- CentOS启动流程与grub