Makefile
  5SL1O36RFEWc 2023年11月02日 26 0

Cmake实践

  • CURL:是利用URL语法在命令行下工作的传输工具
  • cmake是跨平台项目管理工具,它用更抽象的语法来组织项目。虽然,仍然是目标,依赖之类的东西,但更为抽象和友好,比如你可用math表示数学库,而不需要再具体指定到底是math.dll还是libmath.so,在windows下它会支持生成visual studio的工程,在linux下它会生成Makefile,甚至它还能生成eclipse工程文件。也就是说,从同一个抽象规则出发,它为各个编译器定制工程文件。
  • make用来执行Makefile,cmake用来执行CMakeLists.txt,qmake用来处理*.pro工程文件。Makefile的抽象层次最低,cmake和qmake在Linux等环境下最后还是会生成一个Makefile。cmake和qmake支持跨平台,cmake的做法是生成指定编译器的工程文件,而qmake完全自成体系。

Makefile_源文件

  • gcc、make、cmake

1、gcc

  • 功能:它是GNU Compiler Collection(就是GNU编译器套件),也可以简单认为是编译器,它可以编译很多种编程语言(括C、C++、Objective-C、Fortran、Java等等)。
  • 使用场景程序只有一个源文件时,直接就可以用gcc命令编译它。
  • 不适用的场景:如果我们的程序包含很多个源文件时,用gcc命令逐个去编译时,就发现很容易混乱而且工作量大,所以出现了make工具。

2、make

  • 功能:make工具类似于批处理工具,可以对多个源文件进行批量地编译和链接;make工具本身不具备编译和批处理功能,它是通过调用makefile文件中的命令实现编译和链接。【makefile命令中就包含了调用gcc(也可以是别的编译器)去编译某个源文件的命令】
  • 适用场景多行gcc命令;简单工程
  • 不适用场景:当工程非常大的时候,手写makefile也是非常麻烦的,如果换了个平台makefile又要重新修改,这时候就出现了下面的Cmake这个工具。

3、cmake

  • 功能:类似的工具有GNU Make QT的qmake , 微软的MS nmake … 但是这些工具遵循着不同的规范、在面对跨平台的问题下,就显得捉襟见肘,cmake 能较好处理这个,Cmake工具的功能就是用来生成makefile文件,以便make工具进行调用;Cmake工具根据CMakeLists.txt(组态档)文件生成makefile文件;而CMakefile文件是需要程序员自己编写的,或者借助IDE生成;
  • 适用场景 在每一种标准下写一次makefile . 另外makefile的编写比较麻烦。为了解决这些问题,Cmake应运而生。

4、总结

Makefile_编译器_02

其他:pkgconfig:cmake跟已有体系配合的不是特别理想,比如pkgconfig

对于一个比较大第三方库,其头文件和库文件的数量是比较多的。如果我们一个个手动地写,那将是相当麻烦的。所以,pkg-config就应运而生了。pkg-config能够把这些头文件和库文件的位置指出来,给编译器使用。


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  5SL1O36RFEWc   2023年11月02日   27   0   0 工程文件编译器源文件
5SL1O36RFEWc
作者其他文章 更多

2023-11-12

2023-11-12

2023-11-12

2023-11-02

2023-11-02

2023-11-02

2023-11-02

2023-11-02