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

原作者:超超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中的内容了。

结果如图:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值