news 2026/5/28 23:50:05

CMAKE指令集

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CMAKE指令集

目录

1、指定CMAKE最低的版本号

2、设置工程名

3、添加可执行文件

4、简化项目名的表示

5、添加多个可执行文件

6、添加多个可执行文件的简洁方法

7、添加版本号和配置头文件

8、指定C++版本

9、添加库

10、使用库

11、将库设置为可选项

如果这篇文章能帮助到你,请点个赞鼓励一下吧ξ( ✿>◡❛)~


CMakeLists.txt文件,是配置CAMKE工程的起点,

文件中的相关指令:

1、指定CMAKE最低的版本号

cmake_minimum_required(VERSION 3.15)

2、设置工程名

project(Tutorial)

3、添加可执行文件

add_executable(Tutorial tutorial.cpp)

4、简化项目名的表示

add_executable(${PROJECT_NAME} tutorial.cpp) (其中${PROJECT_NAME}表示PROJECT_NAME该值为宏定义替换)

5、添加多个可执行文件

add_executable(${PROJECT_NAME} a.cpp b.cpp c.cpp) #多个可执行文件之间使用 空格 隔开

6、添加多个可执行文件的简洁方法

set(SRC_LIST a.cpp b.cpp c.cpp) add_executable(${PROJECT_NAME} ${SRC_LIST}) #使用SRC_LIST来指代多个可执行文件,SRC_LIST就是多个文件名的宏定义

7、添加版本号和配置头文件

project(Tutorial VERSION 1.0.2) #这个命令为项目增加了一个版本号

8、指定C++版本

cmake_minimum_required(VERSION 3.15) # set the project name and version project(${PROJECT_NAME} VERSION 1.0) # specify the C++ standard set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED True) #当gcc版本>6.1,不显式指定C++版本,默认C++版本为C++14,其中CMAKE_CXX_STANDARD变量就是指定C++本版的宏

9、添加库

# MathFunctions/CMakeLists.txt add_library(MathFunctions mysqrt.cpp) #在MathFunctions目录包含两个文件,MathFunctions.h 和 mysqrt.cpp,在这个目录下创建一个CMakeLists.txt文件,内容如上所示,表示添加一个叫MathFunctions的库文件

10、使用库

add_subdirectory(MathFunctions) #为了使用MathFunctions库,需要在顶层的CMakeLists.txt文件中添加上述命令,指定库所在的子目录,该子目录下包含CMakeLists.txt文件和头文件、源文件。 # add the MathFunctions library add_subdirectory(MathFunctions) # add the executable add_executable(${PROJECT_NAME} tutorial.cpp) target_link_libraries(${PROJECT_NAME} PUBLIC MathFunctions) # add the binary tree to the search path for include files # so that we will find TutorialConfig.h target_include_directories(${PROJECT_NAME} PUBLIC ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR}/MathFunctions )

11、将库设置为可选项

if(USE_MYMATH) add_subdirectory(MathFunctions) list(APPEND EXTRA_LIBS MathFunctions) list(APPEND EXTRA_INCLUDES ${PROJECT_SOURCE_DIR}/MathFunctions) endif() # add the executable add_executable(${PROJECT_NAME} tutorial.cpp) target_link_libraries(${PROJECT_NAME} PUBLIC ${EXTRA_LIBS}) # add the binary tree to the search path for include files # so that we will find TutorialConfig.h target_include_directories(${PROJECT_NAME} PUBLIC ${PROJECT_BINARY_DIR} ${EXTRA_INCLUDES} ) #将库设置为可选项,可以在不使用库时,将库文件从编译过程中剥离出去,优化编译效率和代码体积。

如果这篇文章能帮助到你,请点个赞鼓励一下吧ξ( ✿>◡❛)~

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/22 10:48:33

AI写作助手测评大会

当前主流AI写作工具对比ChatGPT (OpenAI) 支持长文本生成和多轮对话,擅长创意写作和内容改写。提供网页版和API接口,订阅版可访问GPT-4模型。在学术写作和商业文案场景表现突出。Claude (Anthropic) 注重安全性和事实准确性,内置宪法AI约束机…

作者头像 李华
网站建设 2026/5/26 6:12:48

【必收藏】突破传统RAG瓶颈:Deep Thinking RAG架构详解与实战指南

Deep Thinking RAG是一种将RAG与Agent技术融合的新型架构,突破了传统RAG的局限性。它通过四个智能模块(规划代理、检索监督者、多阶段检索漏斗、策略代理)实现从线性链到循环图的跃迁,支持多跳推理、动态知识边界和自适应检索策略…

作者头像 李华
网站建设 2026/5/20 22:31:29

查询指定任务的办理时间轴

一、接口核心需求分析 你提供的这段代码是Activiti工作流中查询指定任务的办理时间轴接口,核心业务需求如下: 关联查询:根据传入的任务ID(taskId),先获取对应的流程实例ID(processInstanceId&am…

作者头像 李华
网站建设 2026/5/27 18:59:31

ubuntu系统_每天定时23:00 定时关机_怎么实现

在Ubuntu系统中设置每天23:00定时关机,最可靠的方法是使用系统内置的 cron 服务。下面的表格汇总了实现步骤和关键要点,你可以快速了解整个过程。步骤核心操作说明/命令示例1. 编辑计划任务终端中输入 sudo crontab -e使用 sudo 获取root权限&#xff0c…

作者头像 李华
网站建设 2026/5/26 17:53:07

mysql一条sql语句是如何运行的

MySQL SQL 语句执行流程MySQL 执行一条 SQL 语句的过程可以分为多个阶段,包括连接管理、解析与优化、执行引擎处理以及结果返回。以下是详细流程:连接管理客户端通过 TCP/IP 或 Unix Socket 连接到 MySQL 服务器。连接建立后,服务器进行身份验…

作者头像 李华
网站建设 2026/5/20 16:29:33

基于深度学习的空气质量预测研究(源码+万字报告+讲解)(支持资料、图片参考_相关定制)

摘要 由于环境恶化对人类健康、经济和日常生活的不利影响,空气质量问题逐渐引起了全世界的关注。大量研究表明,空气污染会对人类健康造成巨大危害,因此应采取措施预防和控制空气污染现象,减少空气污染对人类和地球造成的损害。随着…

作者头像 李华