首页 > 其他分享 >CMakeLists.txt 和 Makefile

CMakeLists.txt 和 Makefile

时间:2024-09-09 15:56:56浏览次数:11  
标签:文件 CMakeLists CMake Makefile 构建 txt

CMakeLists.txtMakefile 都是用于自动化编译和构建软件项目的配置文件,但它们在构建系统中扮演不同的角色,并且使用不同的构建工具。

CMakeLists.txt

  • CMakeLists.txt 文件是 CMake 构建系统的配置文件。
  • CMake 是一个跨平台的自动化构建系统,它使用 CMakeLists.txt 文件来生成标准的构建文件,如 Unix 系统的 Makefile 或 Windows 系统的 Visual Studio 解决方案文件。
  • CMakeLists.txt 文件包含了一系列指令,用于指定项目的构建过程,包括设置项目名称、定义源文件、添加库、设置编译选项、定义宏、配置依赖项等。
  • CMake 首先被运行以生成适当的构建文件,然后使用这些生成的构建文件来编译项目。

Makefile

  • Makefile 是一个用于 Unix 系统的传统构建系统(make)的配置文件。
  • 它包含了一系列规则和依赖项,用于指示 make 工具如何编译和链接程序。
  • Makefile 通常包含目标文件、依赖关系和构建命令,make 工具根据这些信息来确定哪些文件需要重新编译。
  • Makefile 可以直接在命令行中使用 make 命令来运行,无需生成其他构建文件。

关系

  • 生成关系CMakeLists.txt 文件通常用于生成 Makefile 或其他构建系统所需的文件。在 CMake 工作流程中,你首先运行 CMake 来处理 CMakeLists.txt,它会检查系统环境、编译器和其他工具,然后生成适当的 Makefile 或其他构建文件。之后,你可以使用 make 命令(或其他构建工具)来实际编译项目。
  • 依赖关系:在某些情况下,CMakeLists.txt 可以包含条件逻辑来生成不同的 Makefile 内容,这取决于编译器、平台、用户输入的选项等。
  • 互补性:在一些大型项目中,你可能会看到 CMakeLists.txt 和 Makefile 同时存在。例如,项目可能使用 CMake 来处理大部分构建逻辑,但对于某些特定部分,开发者可能会选择直接使用 Makefile

总结来说,CMakeLists.txt 是 CMake 构建系统的配置文件,而 Makefile 是 make 构建系统(或其他类似构建系统)的配置文件。在很多情况下,CMakeLists.txt 用于生成 Makefile,但它们也可以独立使用。

标签:文件,CMakeLists,CMake,Makefile,构建,txt
From: https://blog.csdn.net/weixin_44500921/article/details/142060908

相关文章

  • 学习makefile(2)
    1、Makefile规则 HelloWorld基本上所有程序员的所有编程语言一个最简单的例子,虽然makefile不是一门编程语言,但是我们同样可以在一个命令中终端上输出一个helloworldall:echo"HelloWorld"那上述例子中就有我们学习的第一个语法,echo前面必须只有TAB,且至少有一个TAB,不......
  • Makefile和CMkeLists.txt的简单编写
    MakefileCXX=g++#编译器TARGET=out#最终输出的文件名#如果有新增源文件,需手动添加同名的中间文件OBJ=main.osrc1.osrc2.o#要生成的中间文件(汇编文件),还未链接#也可以使用下面这种方法,这样我们就不要手动添加新增的源文件了#SRC=$(wildcard*.cpp)#......
  • epub转txt
    frombs4importBeautifulSoupdefexact_p_tag(path,f):xhtml_file=open(path,'r',encoding='utf-8')xhtml_handle=xhtml_file.read()soup=BeautifulSoup(xhtml_handle,'lxml')title=soup.find_all("......
  • puthon-txt(1) 从txt读取gnss数据
     数据1453132356.60000034.0342694493108.755911045587.8002931453132357.96000034.0344383177108.755909682587.6737781453132358.52000034.0345050891108.755905295587.5684091453132359.16000034.0345823584108.755898876587.5876111453132359.56000034.......
  • 工程管理-Makefile
    简介       Linux的make程序用来自动化编译大型源码,很多时候,我们在Linux下编译安装软件,只需要敲一个make就可以全自动完成,非常方便。      make能自动化完成这些工作,是因为项目提供了一个Makefile文件,它负责告诉make,应该如何编译和链接......
  • 使用Cmake-编写CMakeLists.txt 文件
    好处:a)跨平台(makefile跟平台强相关)b)cmake可以自动生成makefile编写CMakeLists.txt文件#关键主体:cmake_minimum_required(VERSION3.10)#指定最低支持的CMake版本project(FunMainVERSION1.0)#定义项目名称及版本号#添加可执行文件add_executable(${PROJECT_N......
  • Linux下makefile 编译项目
    1、规划makefile编写a、根目录下放三个文件:1、makefile:是咱们编译项目的入口脚本,编译项目从这里开始,起总体控制作用。2、config.mk:配置脚本,被makefile包含,单独分处理,为了应付一些可变的东西。3、common.mk:最核心的编译脚本,定义makefile编译规则,并且各个子目录中都用到这个来编译.......
  • Makefile .PHONY 的作用
    .PHONY是Makefile中的一个特殊目标,用于声明那些并不对应于实际文件的目标。它的主要作用是告诉make,这些目标是虚拟的,不会生成文件,因此make应该总是执行这些目标,即使文件系统中存在与目标同名的文件。.PHONY的作用​1.防止文件冲突:如果目标与实际文件同名,make......
  • [20240902]验证sql_idz.sh计算PLSQL代码块.txt
    [20240902]验证sql_idz.sh计算PLSQL代码块.txt--//测试验证sql_idz.sh计算PLSQL代码块是否正确.1.环境:SYS@book>@ver2==============================PORT_STRING                  :x86_64/Linux2.4.xxVERSION                     ......
  • [20240902]建立完善sql_idz.sh脚本.txt
    [20240902]建立完善sql_idz.sh脚本.txt--//增加hash_value的16进制显示采用大小写显示.$cat-v~/bin/sql_idz.sh#!/bin/bash#calcucatesql_textoffull_hash_value(16),hash_value(10),sql_id(32).#argv1sqlstatementorsqloftextfile#argv2flag:0=sqlstatement......