cmake、gcc、make、CMakeFiles.txt、Makefile的区别;内容干货无水份

内容十分简洁干活,最后有实际操作,做一遍你们就清楚了

编译器:gcc、clang
工具:cmake、make

使用说明:

开发的时候,用 cmake根据CMakeLists.txt生成Makefile。

编译的时候用,make基于Makefile编译项目

cmake

CMake可以自动生成Makefile或VS等IDE的工程文件,从而实现跨平台的编译和构建。
cmake根据CMakeLists.txt生成Makefile,如:
CMake只是一个用于生成编译器配置文件(makefile)的工具

1 在源代码目录下创建一个CMakeLists.txt文件,编写编译项目的规则。

2 进入一个新建的目录,例如build目录。

3 在build目录下执行cmake命令,指定源代码目录。

4 cmake会自动查找所需的编译工具,并生成一个Makefile文件。

5 在build目录下执行make命令,根据Makefile文件编译和链接源代码,生成可执行文件。

CMakeLists.txt

CMakeLists.txt是编译项目的规则如:

cmake_minimum_required(VERSION 3.23)
project(cnew C)

set(CMAKE_C_STANDARD 11)

add_executable(cnew
        ./main.c)

make

用于管理代码编译、链接和安装等操作,可以自动根据文件依赖关系来完成对应的编译和链接过程。它的配置文件是Makefile。
make是一种基于规则(Makefile)的构建工具

gcc

gcc是GNU编译器套装中的一个C语言编译器,常用于将C代码编译为可执行文件。

gcc main.c -o main

实际操作

举例:
1、一般拿来一个c/cpp项目,要做的操作是:

./configure
make
make install

这个是构建过程,make用来构建项目

2、自己写的文件 main.c

gcc main.c -o main

这个会编译成二进制可执行文件main

3、如果你给这个同路径下再写一个CMakeLists.txt文件

cmake_minimum_required(VERSION 3.23)
project(cnew C)

set(CMAKE_C_STANDARD 11)

add_executable(cnew
        ./main.c)

这个时候当前路径下有两个文件,分别是:
CMakeLists.txt和main.c
现在就是用到cmake的时候了

cmake .

执行 cmake . 命令会在当前目录生成一个 Makefile 文件和一些其他的辅助文件,这些辅助文件包括:

  • CMakeCache.txt:缓存文件,记录了 CMake 生成 Makefile - 时使用的变量值、路径等信息。
  • cmake_install.cmake:安装文件,包含安装目标文件的相关信息。
  • Makefile:用于编译和链接 C/C++ 项目的 Makefile 文件。
  • CMakeFiles 目录:存放 CMake 在构建过程中生成的中间文件,如依赖文件、编译器输出、对象文件等。

猜你喜欢

转载自blog.csdn.net/qq_46110497/article/details/130424027