星空网 > 软件开发 > 操作系统

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

根据老师的要求,写一个超简单的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 helloworldfile1.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中的内容了。

结果如图:

Linux平台Makefile文件的编写基础入门(课堂作业)images/loading.gif' data-original="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平台Makefile文件的编写基础入门(课堂作业)

关键词:linux

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

顺义空运:https://www.goluckyvip.com/tag/102832.html
空运行李托运:https://www.goluckyvip.com/tag/102833.html
义乌空运:https://www.goluckyvip.com/tag/102834.html
飞机托运包:https://www.goluckyvip.com/tag/102835.html
空运出口物流:https://www.goluckyvip.com/tag/102836.html
泰州空运:https://www.goluckyvip.com/tag/102837.html
探讨内地人开设香港账户的可行性 :https://www.kjdsnews.com/a/1836442.html
在古巴做游轮 古巴旅游项目:https://www.vstour.cn/a/363194.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流