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} ) #将库设置为可选项,可以在不使用库时,将库文件从编译过程中剥离出去,优化编译效率和代码体积。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1125693.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

导师严选10个一键生成论文工具,本科生毕业论文轻松搞定!

导师严选10个一键生成论文工具,本科生毕业论文轻松搞定! 1.「千笔」—— 一站式学术支持“专家”,从初稿到降重一步到位(推荐指数:★★★★★) 在众多AI论文生成工具中,「千笔」凭借其强大的功能…

强烈安利MBA必用TOP8 AI论文工具测评

强烈安利MBA必用TOP8 AI论文工具测评 一、不同维度核心推荐:8款AI工具各有所长 MBA论文写作是一个复杂且多环节的过程,从开题到初稿、查重、降重再到排版,每一个阶段都对工具的适配性提出了不同的要求。为了帮助MBA学生更高效地完成论文&…

Thinkphp和Laravel框架的简历智能推荐系统_jw8dzu00

目录ThinkPHP与Laravel框架的简历智能推荐系统技术实现要点部署与优化项目开发技术介绍PHP核心代码部分展示系统结论源码获取/同行可拿货,招校园代理ThinkPHP与Laravel框架的简历智能推荐系统 简历智能推荐系统是一种基于人工智能技术的招聘辅助工具,旨在通过分析求…

2025年GEO优化实力排行榜,杭州爱搜索人工智能有限公司入选TOP5供应商

引言:GEO优化市场现状与选择困境 随着数字化转型的加速推进,基于地理位置的精准营销(GEO优化)已成为企业获取本地客户的关键手段。然而,面对市场上众多的GEO优化服务商,企业在选择时往往面临诸多困惑:不同服务商的技术…

限时公开!9款AI写论文神器,维普查重一把过无痕!

紧急预警:论文DDL只剩72小时?AI工具能救你! 凌晨3点的图书馆、满屏飘红的查重报告、导师第8次打回的修改意见——这是不是你论文季的真实写照? 据《2025年高校论文写作现状调研》显示:78%的研究生曾因论文进度滞后失…

JOIN之高级连接

目录 说明: 3 高级连接 4 员工数据库 4 使用员工数据库 5 按名字筛选 5 按名字、日期和时间筛选 6 显示每日总工时 说明: 1.数据库:MariaDB 2.数据库版本:10.11.14 3.SQL工具:DBeaver 4.本文来自与MariaDB官网的一片文章 5.操作系统:debian12 高级连接 探…

所有权、借用、生命周期:Rust内存安全的核心密码

所有权、借用、生命周期:Rust内存安全的核心密码 上一篇我们学完了Rust的核心语法,实现了一个功能完整的学生成绩管理系统。但如果仔细观察代码,你会发现我们一直在避免**“传递复杂数据的引用”**——都是直接传递值或者使用HashMap的get方法…

AI大模型时代程序员/小白的职业进阶指南:五大高薪岗位与技能路径全解析

AI大模型时代催生五大高薪岗位,包括算法工程师、数据科学家等,就业需求激增,2024年中国AI产业规模突破7000亿元。但人才缺口超500万,企业更看重实战能力。文章详细介绍了各岗位特点、技能要求及发展路径,为年轻人规划A…

Linux用户、组创建

#创建指定组ID的xixi组 groupadd -g 3001 xixi#创建指定用户ID的ADMIN用户,并加入进xixi组 useradd -u 3001 -G xixi ADMIN #创建指定用户ID的APP用户,并加入进xixi组 useradd -u 3002 -G xixi APP#设置两用户密码永不过期 chage -M 99999 ADMIN chage -…

Thinkphp和Laravel框架的企业员工事务任务处理系统_3e9isxr0

目录ThinkPHP与Laravel框架的企业员工事务任务处理系统对比项目开发技术介绍PHP核心代码部分展示系统结论源码获取/同行可拿货,招校园代理ThinkPHP与Laravel框架的企业员工事务任务处理系统对比 企业员工事务任务处理系统需高效管理任务分配、进度跟踪及团队协作。ThinkPHP和L…

AI写作助手测评大会

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

让 AI 自己打怪升级,Meta用Self-play RL把Coding推向超级智能

Meta FAIR & Meta TBD Lab&卡内基等:朝着“超级智能软件工程 Agent”迈出了第一步。 SSR(Self-play SWE-RL) 首次让大模型在“零人类标注”的情况下,仅靠自生成 Bug 自修复的左右互搏,就能在 SWE-bench 系列 …

医疗OCR用Tesseract稳缩写识别

📝 博客主页:jaxzheng的CSDN主页 医疗OCR中Tesseract的稳定缩写识别:技术挑战与创新实践目录医疗OCR中Tesseract的稳定缩写识别:技术挑战与创新实践 引言:当缩写成为医疗数据的“隐形障碍” 一、医疗OCR缩写识别&#…

Thinkphp和Laravel框架的四川旅游学院校园水果自动售卖商城系统的设计与实现_yhyfhk6y

目录摘要项目开发技术介绍PHP核心代码部分展示系统结论源码获取/同行可拿货,招校园代理摘要 本研究基于ThinkPHP和Laravel框架,设计并实现了一款面向四川旅游学院校园的水果自动售卖商城系统。系统采用B/S架构,结合MySQL数据库,实现了用户管…

RAG架构完全指南:从标准到自适应,AI开发者必备的检索增强生成知识体系

文章详细介绍了9种RAG架构,包括标准RAG、对话式RAG、CRAG、Adaptive RAG等,分析了它们各自的适用场景、工作流程和优缺点。强调选择合适架构对项目成功至关重要,建议从简单开始,根据需求逐步增加复杂度,避免过度设计。…

【Go】Go环境搭建与第一个程序

Go环境搭建与第一个程序 前言 这篇是 Go基础合集 的第一篇学习笔记,这次整理的是 Go 语言的环境搭建和第一个程序。 想学一门新语言,第一步是什么?当然是把环境搭起来!很多人卡在环境配置这一步就放弃了,其实 Go 的…

AI 外设接入 + 本地模型指定路径部署,FlowyAIPC v4.0.3 正式发布

【2026年01月06日】FlowyAIPC 全新 v4.0.3 版本正式发布,本次更新重点围绕「会议纪要反馈机制」「本地模型部署位置」以及「AI鼠标外设」同时对部分硬件配置下的功能策略进行了调整。 本地模型支持自定义部署位置 模型不再被“固定在一个路径里” 针对本地模型体…

STM32出现FLASH擦除失败异常现象分析及解决方法

目录 前言: 先说结论: 一、问题分析 二、异常排查 三、发现原因! 四、如果这篇文章能帮助到你,请点个赞鼓励一下吧ξ( ✿>◡❛)~ 前言: 长颈鹿最近在使用STM32G070单片机进行项目开发,过程…

使用keychron Launcher改 K3Max 的功能键

解决问题的关键是发现并描述清楚问题 买了一个 K3Max 有一个痛点,每次按 F12 打开浏览器控制台,需要 fnF12。用起来非常累 看别人描述“而在我的日常工作中,常用的是F1~F12,期望F1~F12功能键和多媒体功能键的位置互换…

RAG(检索增强生成)架构与原理:告别LLM“幻觉”的秘密武器

写在前面的话 RAG是什么?如果你还不清楚或是一知半解,不要紧,如果看完这篇文章,你还不会,算我输! 在人工智能飞速发展的今天,大型语言模型(LLM)以其强大的文本生成能力&a…