make&cmake & qmake&makefile

文章讲述了Make工具的历史、工作原理以及GNUmake作为工业标准的地位。同时介绍了CMake和qmake这两种更高层次的项目管理工具,CMake用于跨平台项目管理,虽然CMakeLists.txt较复杂,但功能强大;qmake专为Qt设计,使用简便。
摘要由CSDN通过智能技术生成

Make

  • 20世纪70年代发明出来的一种工具,辅助完成编程项目的编译工作,主要用于unix(包括linux)环境下。
  • make的编译思路:在源代码发生变化,需要重新构建目标或者其他输出文件时,make会根据时间戳查看哪些文件发生了变化,对发生变化的文件重新进行构建,未发生变化的文件则不执行构建,以节约编译时间。

GNU make

  • make工具的GNU版本,属于自由软件,先已经成为了工业标准。
  • make 的使用
    • 在unix系统的终端(shell)任一目录下,输入命令【make】,就可以调用 make 工具。
    • make 工具会在当前目录下依次按照GNUmakefile,makefile,Makefile顺序,寻找Makefile文件。如果找到其中任何一个,就读取该makefile文件并按照其中的规则执行,否则就报错。
  • make 命令选项
    • make命令是可以接收参数的。格式: make 【选项】【宏定义】【目标】
    • 选项可以制定make的工作行为,宏定义可以制定执行Makefile的宏值,目标则是Makefile中的目标,包括伪目标。这些参数均可选,参数之间使用空格分隔。
    • 可以在shell下输入 【man make】查看make的相关参数及其用法

cmake

  • cmake是抽象层次更高的项目管理工具
  • cmake通过CMakeLists.txt生成makefile文件,

qmake

  • qmake是Qt专用的项目管理工具,对应的工程文件是*.pro
  • 在Linux下面它也会生成Makefile,在命令行下才会需要手动执行qmake,可以在qtcreator IDE下面打开*.pro文件

Makefile 文件

  • makefile命令中包含了调用gcc(也可以是别的编译器)去编译某个源文件的命令
  • Linux下,对于小工程,可以手动编写Makefile文件,对程序编译进行精确控制;对于大工程,手动编写Makefile文件,工作量很大,需要使用automake工具,通过简单配置,自动生成Makefile文件。
  • makefile 编写较为复杂,有许多复杂的用法,但其基本语法格式简单:
    target: prerequisties # target是编译目标,prerequisties是依赖关系文件,
      				command # command是生成target所需执行的命令
      				# 在 prerequisites 中,如果有一个以上的文件比 target 文件要新的话,command 所定义的命令就会被执行。
    

总结

  • make的抽象层次最低,cmake/qmake抽象层次较高,且支持跨平台。
  • cmake同样支持Qt程序,cmake也能生成针对qt 程序的makefile。但cmake的CMakeLists.txt 写起来相对与qmake的pro文件复杂。qmake 是为 Qt 量身打造的,使用非常方便,但是cmake功能比qmake强大。
  • 一般的Qt工程直接使用qmake,cmake的强大功能一般人是用不到的。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沐王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值