C/C++生态工具链——编译构建工具CMake/CMakeList初探 一,CMake简介 CMake的全称是Cross-platform Make。我第一次参与LinuxC++开发时使用的工具是Make,而后开始切换到CMake,一开始以为CMake是和C语言有关,原来开头的C表示它可以跨平台。 CMake的使用场景: 跨平台编译运行,交叉编译。一般基于CMakeLists.txt文件定...
Makefile是有条理的gcc编译命令的文件,利用make工具来执行Makefile文件的编译指令,当程序简单时, 可以手写Makefile,当程序复杂时, 一般利用CMake来自动生成Makefile。因而Cmake类似Make工具功能,用来“读取”并执行CMakeLists.txt文件的语句, 最终生成Makefile文件。Cmake语言开发相对简单,易于理解。 二.Cmake的常用指...
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/Lib) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/Lib) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_CURRENT_SOURCE_DIR}/../../build/Debug) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/...
一般把CMakeLists.txt文件放在工程目录下,使用时,先创建一个叫build的文件夹(这个并非必须,只是生成的Makefile等文件放在build里比较整齐),然后执行下列操作: cd build cmake .. make 其中cmake .. 在build里生成Makefile,make应当在有Makefile的目录下,根据Makefile生成可执行文件。 二、编写方法 # 声明要求的c...
step2.执行命令 cmake PATH 或者 ccmake PATH 构建生成Makefile配置文件。PATH为CMakeLists.txt所在的目录。 step3.在Makefile文件所在的路径,执行make命令进行编译。 一般使用过程如下: $ mkdir build $ cd build/ $ cmake .. $ make * 为了不让编译产生的中间文件污染项目的文件结构,专门创建build文件夹进...
list(SORT <list> [...]) 2 示例代码结构 learn_cmake:为根目录 build:为CMake配置输出目录(在此例中即生成sln解决方案的地方) CMakeLists.txt:CMake主脚本 cmake_config.bat:执行CMake配置过程的脚本(双击直接运行) @echooff setcurrentDir=%~dp0 ...
一个c++程序编译需要包含:源文件、引用库以及相关头文件、第三方库以及相关路径,cmakelist.txt文件主要任务就是对这些文件进行查找、链接。 一、常用变量 1、预定义变量 PROJECT_SOURCE_DIR:工程的根目录 PROJECT_BINARY_DIR:运行 cmake 命令的目录,通常是 ${PROJECT_SOURCE_DIR}/build ...
cmake 要求工程主目录和所有存放源代码子目录下都要编写CMakeLists.txt 文件,注意大小写(cm 大写,list中l 大写且落下s). src/CMakeLists.txt 文件如下: 代码语言:javascript 代码运行次数:0 复制 Cloud Studio代码运行 #cmake fileforproject association #表示注释 ...
cmake_minimum_required(VERSION 3.8)这行命令是可选的,我们可以不写这句话,但在有些情况下,如果 CMakeLists.txt 文件中使用了一些高版本 CMake 特有的一些命令的时候,就需要加上这样一行,提醒用户升级到该版本之后再执行 CMake 。2.设置项目名称 project(demo)这个命令不是强制性的,但最好都加上。它...
这仅是 CMake 语法的简要概述,CMake 提供了丰富的功能和命令,具体内容可以参考官方文档:CMake官方文档。不过笼统的概述相信并不能让读者掌握CMake的使用,不用担心,接下来,我们会给出一个CMakeList的编写例子,让读者对CMake语法有初步的认识。在这之前,我们先给出项目的目录结构。