首页 > 其他分享 >Makefilre

Makefilre

时间:2023-09-13 11:03:57浏览次数:33  
标签:gcc cmake make makefile 编译器 Makefilre 工具

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完全自成体系。

Makefilre_源文件

  • 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、总结

Makefilre_编译器_02

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

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


标签:gcc,cmake,make,makefile,编译器,Makefilre,工具
From: https://blog.51cto.com/u_15958702/7452651

相关文章