zoukankan      html  css  js  c++  java
  • 【LINUX编程】Makefile的基本介绍

    1.make  &  Makefile 的基本用法:

    一个程序由print.cmain.c两个源文件构成,程序的功能是main.c中的main函数调用print.c中定义的print函数。

     

    (1)基本的编译链接:

    # cc -c main.c                  //编译main.c生成目标文件main.o

    # cc -c print.c                //编译print.c生成目标文件print.o

    # cc -o exe main.o print.o      //链结main.oprint.o生成可执行文件exe

     

    (2)Makefile文件

    exe:main.o print.o         //1      //依赖条件

        cc -o exe main.o print.o      //命令      

                                                                                         

    main.o:main.c             //2                    

        cc -c main.c                                    

                                                                                         

    print.o:print.c            //3                      

        cc -c print.c                                    

                                                                                        

    clean:                     //4                       

        rm -f exe *.o                                   

     

    1   exe依赖于main.oprint.o,使用"cc -o exe main.o print.o"生成exe

    2   main.o依赖于main.c,使用"cc -c main.c"生成main.o

    3   print.o依赖于print.c,使用"cc -c print.c"生成print.o

    4   clean目标是独立的。可使用 $ make clean 来执行rm删除命令.

    !!!注意: makefile的 命令要以TAB开头,依赖条件顶格

     

    2. 关于Makefile生成多个无关的可执行文件

    make命令不加参数的话只会默认生成第一个标签,所以对于想生成多个彼此无关的可执行文件,可以设置第一个标签为all并关联到要多个目标文件。

    例如:

    all a.exe b.exe         

    a.exe: a.c              

            gcc –o a.exe a.c

    b.exe: b.c              

            gcc –o b.exe b.c

    (如果不使用all标签的,则make将只生成a.exe,而忽略下一个无关的标签b.exe)

    3. 更多

    《跟我一起写Makefile》http://www.chinaunix.net/jh/23/408225.html

  • 相关阅读:
    mysql高效分页
    mybatis插入值为空时需要制定类型
    NoClassDefFoundError
    mybatis动态sql中的两个内置参数(_parameter和_databaseId)
    Java位运算在程序设计中的使用:位掩码(BitMask)
    基于netty的聊天室(保持和获取客户端channel)
    Netty自定义协议半包编解码
    位运算基础
    JAVA加密系列(四)- 位运算加密(异或加密)
    位运算基础
  • 原文地址:https://www.cnblogs.com/funway/p/1978659.html
Copyright © 2011-2022 走看看