CMake基础篇(九)——编译选项
CMake基础篇(九)——编译选项前言: 本篇文章介绍CMake的一些编译项配置。 1 add_compile_options 设置编译选项可以使用 add_compile_options 函数。 1add_compile_options(-std=c++11 -Wall -O2)
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...
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 +...
CMake基础篇(六)——常用函数
CMake基础篇(六)——常用函数前言: 本篇文章介绍CMake常用函数。 1 find_package&esmp; find_package是CMake中一个非常重要的命令,它的主要功能是在系统上查找外部项目或库,并将这些项目的配置信息集成到当前项目的构建过程中。这个命令使得CMake能够支持各种第三方库和工具链,简化了跨平台构建的复杂性。以下是find_package的一些关键功能和用法说明: 查找库或项目:find_package负责搜索指定的库或项目,并设置一系列变量来描述找到的库或项目的路径、编译选项等。这些信息随后可用于链接库、包含头文件路径等。 配置组件:许多现代库(如Qt5、Boost等)都是模块化的,find_package允许你指定需要哪些组件(如前所述的COMPONENTS...
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 =...
CMake基础篇(四)——函数
CMake基础篇(四)——函数前言: 本篇文章帮助你快速熟悉CMake函数的使用。 1 定义函数 CMake支持函数定义,CMake的变量是区分大小写的,包括函数的传入参数,但函数名不区分大小写。 以下定义了一个名为 FunName 的函数。 12345678910project(ProjectName)function(FunName Param0 Param1) message(STATUS "${Param0}") message(STATUS "${Param1}") # message(STATUS "${param1}") # Error.endfunction()FunName(5 10)funname(1 2) 执行结果为。 12345╰─ cmake ..-- 5-- 10-- 1-- 2 也可以通过...
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...
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...
自娱自乐,我的博客(十七)——腾讯云SSL证书申请
自娱自乐,我的博客(十七)——腾讯云SSL证书申请前言: 在腾讯云上可以免费申请SSL证书,本篇文章介绍如何申请并配置SSL证书。 1 介绍 SSL证书(Secure Sockets Layer,现在通常指TLS证书,即Transport Layer Security)的主要作用是为网站提供安全的数据传输服务。主要包含以下几个用途。 数据加密。 身份识别。 防止中间人攻击。 HTTPS标识。 建立信任。 在腾讯云使用个人域名,必须要要绑定证书。通常证书有效期是一年,到期后需要重新申请新的证书并绑定。 2 证书申请 登录腾讯云 SSL证书申请 界面。提交证书申请,填写要绑定的个人域名。 要成功绑定域名,还需要添加一条域名解析记录,我是在阿里云购买的域名,因此我在阿里云的域名配置中添加以下记录。 后在腾讯云点击 验证域名 观察验证是否通过。 证书申请成功后会显示 已签发 。 3 绑定域名3.1...
自娱自乐,我的博客(十六)——博客托管到腾讯云
自娱自乐,我的博客(十六)——博客托管到腾讯云前言: 早些搞博客的时候比较穷,白嫖博客托管,用过github,由于网速太慢切到gitee,又由于不支持私有域名换到Coding,后Coding开始收费又换到Vercel,这个网站有段时间被墙了后再次换回Coding体验几个月免费,现在免费期也到了。腾讯将静态网站托管功能从Coding移到腾讯云了,免费固然好但经常被迫搬家,要花时间折腾,现在人到中年钱有一点,更缺的是时间,因此在腾讯云正式成为付费用户。 1 腾讯云静态网站托管1.1 开通静态网站托管服务 在 腾讯云官网 搜索 网站托管 ,点击 静态网站托管 。注意,静态网站托管是包月的,不是按流量收费。 首次使用需要点击 免费开通云开发 将服务打开。 点击 同意授权...