CMake基础篇(九)——编译选项
前言:
本篇文章介绍CMake的一些编译项配置。
1 add_compile_options
设置编译选项可以使用 add_compile_options 函数。
1 | add_compile_options(-std=c++11 -Wall -O2) |
文章作者: OnlyCalm
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 OnlyCalm's Blog!
相关推荐
2024-07-20
CMake基础篇(七)——编译动态或静态库
CMake基础篇(七)——编译动态或静态库前言: 本篇文章介绍CMake如何编译动态或静态库。 1 编译库 在项目实战中常常会涉及到使用第三方库,可以是动态或静态库,而用CMake如何将源码编译成动态或静态库是本文要探讨的话题。 目录结构如下。 1234567891011121314╰─ tree.├── build├── CMakeLists.txt├── inc│ └── alg.h├── lib│ ├── build│ └── CMakeLists.txt├── main.c├── main.h├── README.md└── src └── alg.c 我们要将alg.c和alg.h编译为动态库(*.so)和静态(*.a)库。在lib路径下编辑如下CMakeLists.txt文件。 1234567cmake_minimum_required(VERSION...
2024-07-20
CMake基础篇(三)——变量
CMake基础篇(三)——变量前言: 本篇文章帮助你快速熟悉CMake变量的使用。 1 介绍 Cmake定义变量有显示和隐式两种。显示为使用 set 函数定义的变量,隐式是CMake自动创建的变量。CMake新增变量不需要提前有个变量定义操作,直接使用即自动完成变量定义。 更详细的变量信息查询可以访问 官网对CMake变量的说明 。 2 隐式变量 比如以下代码, project(ProjectName) 函数定义了该项目的名称为 ProjectName ,同时CMake会隐式的定义 ProjectName_SOURCE_DIR 和 ProjectName_BINARY_DIR 两个变量。 123project(ProjectName)message(STATUS "${ProjectName_SOURCE_DIR}")message(STATUS "${ProjectName_BINARY_DIR}") 3...
2024-07-20
CMake基础篇(二)——构建并编译简单Demo
CMake基础篇(二)——构建并编译简单Demo前言: 本篇举例一个最简单的CMake构建的工程,帮助快速熟悉CMake。 1 CMake简介 CMake是一种跨平台的编译工具,它语法简单,可以输出各种各样的makefile或project文件。CMake用于产生标准的构建档,使得开发者可以在不同的平台用标准的方式构建软件,实现一次编写编译规则,多个平台相同编译。 2 编写CMakeLists CMake的代码是写在CMakeLists文件中,通过执行 cmake 指令生成 Makefile 文件,接着在执行 make 指令编译生成目标文件。以下用一个最简化的Demo做一个演示,跑一遍构建、编译到运行的过程。 目录结构如下。 123.├── CMakeLists.txt└── main.c main.c 123456#include <stdio.h>void main(void){ printf("Hello...
2024-07-20
CMake基础篇(五)——宏
CMake基础篇(五)——宏前言: 本篇文章帮助你快速熟悉CMake宏的使用。 1 用法 CMake的宏原理和c/c++相同,本质都是替换。以下代码说明了宏的参数是字符串替换的特点。 12345678910111213141516171819202122232425project(ProjectName)macro(PrintAndModifyMacro var) message(STATUS "Macro before: var = ${var}") set(var "Modified by Macro") message(STATUS "Macro after: var = ${var}")endmacro()function(PrintAndModifyFunction var) message(STATUS "Function before: var =...
2024-07-20
CMake基础篇(八)——构建更复杂的工程
CMake基础篇(八)——构建更复杂的工程前言: 本篇文章介绍CMake如何构建更复杂的工程。 1 带有多个源文件 如果一个工程有多个源文件需要编译,而源文件都在工程根目录下,只需要在CMake中增加源文件依赖的描述即可。目录结构如下。 12345678╰─ tree.├── alg.c├── alg.h├── build├── CMakeLists.txt├── main.c└── README.md main.c。 1234567#include <stdio.h>#include "alg.h"void main(void){ printf("Sum = %d\n", Add(1, 2));} alg.c。 123456#include "alg.h"int Add(int Num1, int Num2){ return Num1 +...
2024-07-20
CMake基础篇(六)——常用函数
CMake基础篇(六)——常用函数前言: 本篇文章介绍CMake常用函数。 1 find_package&esmp; find_package是CMake中一个非常重要的命令,它的主要功能是在系统上查找外部项目或库,并将这些项目的配置信息集成到当前项目的构建过程中。这个命令使得CMake能够支持各种第三方库和工具链,简化了跨平台构建的复杂性。以下是find_package的一些关键功能和用法说明: 查找库或项目:find_package负责搜索指定的库或项目,并设置一系列变量来描述找到的库或项目的路径、编译选项等。这些信息随后可用于链接库、包含头文件路径等。 配置组件:许多现代库(如Qt5、Boost等)都是模块化的,find_package允许你指定需要哪些组件(如前所述的COMPONENTS...
评论
ValineGitalk