您的位置:首页 > 运维架构 > Linux

Linux平台Makefile文件的编写基础入门(课堂作业)

2015-12-28 23:39 639 查看
根据老师的要求,写一个超简单的makefile
准备:
准备三个文件: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://goodcandle.cnblogs.com/archive/2006/03/30/278702.html
http://blog.csdn.net/liang13664759/article/details/1771246
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: