zoukankan      html  css  js  c++  java
  • linux应用程序设计--Makefile工程管理

    Makefile文件描述了整个工程的编译、链接等规则。包括:工程中哪些源文件需要编译以及如何编译;需要创建哪些库文件以及如何创建这些库文件、如何产生最终的可执行文件。

    Makefile相关术语

    1.规则:用于说明如何生成一个或多个目标文件。在Makefile中,规则的顺序非常重要,因为Makefile中只应该有一个最终目标,其他目标都是为了生成该目标而产生的中间文件,所以一般第一条规则中的目标将被确认为最终的目标。

    规则格式如下:targets : prerequisites

           command 

           目标  依赖  命令

    例如:main.o : main.c

       gcc -c main.c    说明:命令需要以【TAB】键开始

    2.编译程序时,使用make命令,将默认在当前目录下寻找名字为makefile或者Makefile的工程文件,当名字不为两者时,可通过如下命令指定:

    make -f filename

    3.伪目标:Makefile中把那些没有任何依赖,只有执行动作的目标称为“伪目标”(phony targets)。

    伪目标格式如下:.PHONY : clean   说明:.PHONY将clean目标声明为伪目标

            clean :

              rm -f hello main.o 

    4.变量

    变量使用例程:obj = main.o fun1.o fun2.o

           hello : $(obj)

           gcc $(obj) -o hello

    5.Makefile默认变量

    $^ : 代表所有的依赖文件

    $@ : 代表目标

    $< : 代表第一个依赖文件

    使用例程:hello : main.o fun1.o fun2.o

         gcc $^ -o $@

    6.Makefile中“#”字符后的内容为注释;“@”字符为取消回显,不显示Makefile中的命令。

     

    作者:Wcat
    本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。
  • 相关阅读:
    八数码问题
    Choose and divide
    紫书 动态规划例题
    3657 括号序列 动态规划
    动态规划 舞蹈家怀特
    分数规划
    Keywords Search AC自动机
    Minimum Transport Cost Floyd 输出最短路
    A Simple Problem with Integers 线段树 区间更新 区间查询
    CF519E A and B and Lecture Rooms
  • 原文地址:https://www.cnblogs.com/wcat/p/10067602.html
Copyright © 2011-2022 走看看