• GNU make


      Linux程序员必须学会使用GNU make来构建和管理自己的软件工程。GNU的make能够使整个软件工程的编译,连接只需要一个命令就可以完成。

      make在执行时,需要一个命名为Makefile的文件。Makefile文件描述了整个工程的编译,连接等规则。其中包括:工程中的哪些源文件需要编译以及如何编译;需要创建哪些库文件以及如何创建这些库文件,如何产生我们想要的可执行文件。

    Makefile(术语)

    规则:用于说明如何生成一个或多个目标文件,规则格式如下:

      Target: prerequisites

        command

      目标 依赖 命令

    例子:main.o : main.c

                         gcc –c main.c(注意:命令需要以TAB键开始)

    例:

    make命令默认在当前目录下寻找名字为Makefile或者makefile的工程文件,当名字不为这两者之一时,可以使用如下方法指定: make –f 文件名

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

      .PHONY:clear

      clear: rm  –f  hello  main.o  func1.o  func2.o

    “.PHONY”将“clear”目标声明为伪目标

    利用变量

    Hello: main.o  func1.o  func2.o

           gcc main.o func1.o func2.o –o hello

    思考1:如何要为hello目标添加一个依赖,如:func3.o,该如何修改?

    答案1:hello:main.o func1.o func2.o func3.o

                         gcc main.o func1.o func2.o func3.o –o hello

    答案2:obj=main.o func1.o func2.o func3.o

                         Hello:$(obj)

                                gcc $(obj) –o hello

    在Makefile中,存在系统默认的自动化变量

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

      (2)$@:代表目标

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

    例:hello: main.o func1.o func2.o

                  gcc main.o fun1.o func2.o –o hello

    ->

      hello: main.o func1.o func2.o

             gcc $^ -o $@

    makefile中“#”字符后的内容被视为注释

      hello:hello.c

             @gcc hello.c –o hello

    @:取消回显

  • 相关阅读:
    存储过程,触发器,函数 学习总结
    发布软件之前,怎样告诉用户怎么用
    一种小项目开发结构
    错误记录 两种实现方法
    模具行业生产知识
    请大家警惕这个散播木马的网站 www.zzyqr.com,本文简要地分析了它通过网页的传播方式
    如何保证开发过程中对数据库结构的更新顺利地迁移到产品服务器上。
    三层开发中容易犯的错误
    全局程序集缓存导致cs0006编译错误:找不到元数据文件错误
    for VS. foreach 那个性能更高,为什么,怎么选择
  • 原文地址:https://www.cnblogs.com/fengz/p/7039334.html
Copyright © 2020-2023  润新知