zoukankan      html  css  js  c++  java
  • Linux平台Makefile文件的编写基础入门(课堂作业)

    根据老师的要求,写一个超简单的makefile
    准备:
           准备三个文件:file1.c, file2.c, file2.h
           file1.c:
                 

     #include "file2.h"
                  int main()
                  {
                         printf("print file1$$$$$$$$$$$$$$$$$$$$$$$$
    ");
                         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**********************
    ");
                  }
    

      

    基础:
           先来个例子:
           有这么个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

  • 相关阅读:
    电话传递数据加密
    求一个3*3矩阵对角线元素之和
    ASP编程入门进阶(四):内置对象Request 详细出处参考:http://www.jb51.net/article/5887.htm
    ASP编程入门进阶(三):接触脚本程序 详细出处参考:http://www.jb51.net/article/5886.htm
    *****User controls in Winform can not be localized
    Regex字符串處理函數--Split--Replace
    office2007如何自动生成目录
    *****解決gridControl lookupedit click時為空的問題
    测试人员应具备的技能和素养
    eXpressApp Framework簡介
  • 原文地址:https://www.cnblogs.com/jycboy/p/5084402.html
Copyright © 2011-2022 走看看