当前位置: 首页 > news >正文

【CMake】使用CMake在VIsual Studio内构建多文件夹工程

一、配置准备

打开VIsual Studio,载入写好的 C M a k e l i s t s . t x t CMakelists.txt CMakelists.txt,在项目中添加以下文件:
在这里插入图片描述
创建一个文件夹 f u n c s funcs funcs,里面放入 f u n c . h func.h func.h f u n c . c p p func.cpp func.cpp C M a k e l i s t s . t x t CMakelists.txt CMakelists.txt文件。

接着,配置主 C M a k e CMake CMake文件:

#需求的最低cmake程序版本
cmake_minimum_required(VERSION 3.12)#本工程的名字
project(OpenGL)#支持的C++版本
set(CMAKE_CXX_STANDARD 20)#搜所有的cpp,加入SRCS变量中
aux_source_directory(. SRCS)#本工程主程序文件及输出程序名称,生成exe
add_executable(glStudy ${SRCS})#将funcs文件夹添加为子文件夹
add_subdirectory(funcs) #添加myFuncs链接库
target_link_libraries(glStudy myFuncs)

然后再 f u n c s funcs funcs文件夹内也创建一个 C M a k e l i s t s . t x t CMakelists.txt CMakelists.txt文件,配置信息如下:

#递归将本文件夹下所有cpp放到FUNCS中
file(GLOB_RECURSE FUNCS ./  *.cpp)#将FUNCS中所有cpp编译为funcs这个lib库
add_library(myFuncs ${FUNCS} )

m a i n . c p p main.cpp main.cpp中载入头文件:

#include"funcs/func.h"

保存,编译运行后:
在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • JavaScript 事件处理
  • Redis——常用数据类型string
  • python 使用seleniumwire获取响应数据以及请求参数
  • Android前台服务如何在后台启动activity?
  • Linux memcg lru lock提升锁性能
  • 架构与业务的一致性应用:实现企业战略目标和合规管理的全面指南
  • 【nginx】搭配okhttp 配置反向代理
  • [数据集][目标检测]葡萄成熟度检测数据集VOC+YOLO格式1123张3类别
  • golang中连接达梦数据库使用域名来代替IP时会出现解析问题
  • 【C++学习】 IO 流揭秘:高效数据读写的最佳实践
  • 无法将ggplot图保存为PDF文件怎么办
  • DevOps -CI/CD 与自动化部署
  • LabVIEW机械手视觉引导系统
  • Cursor vs GitHub Copilot、通义灵码,谁才是真正的王者
  • QUIC 和 HTTP/3:提升网络性能的关键技术
  • 2017-08-04 前端日报
  • cookie和session
  • JAVA_NIO系列——Channel和Buffer详解
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • Mysql5.6主从复制
  • Promise初体验
  • Python爬虫--- 1.3 BS4库的解析器
  • react 代码优化(一) ——事件处理
  • React组件设计模式(一)
  • RxJS: 简单入门
  • vue-cli3搭建项目
  • 责任链模式的两种实现
  • 做一名精致的JavaScripter 01:JavaScript简介
  • hi-nginx-1.3.4编译安装
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • ​学习一下,什么是预包装食品?​
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • #php的pecl工具#
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • (C语言)fgets与fputs函数详解
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (第三期)书生大模型实战营——InternVL(冷笑话大师)部署微调实践
  • (二)十分简易快速 自己训练样本 opencv级联lbp分类器 车牌识别
  • .bashrc在哪里,alias妙用
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .NET单元测试使用AutoFixture按需填充的方法总结
  • .NET开发者必备的11款免费工具
  • .net实现客户区延伸至至非客户区
  • 。。。。。
  • /etc/shadow字段详解
  • ?.的用法
  • @基于大模型的旅游路线推荐方案
  • @软考考生,这份软考高分攻略你须知道
  • [ C++ ] STL priority_queue(优先级队列)使用及其底层模拟实现,容器适配器,deque(双端队列)原理了解
  • [ vulhub漏洞复现篇 ] AppWeb认证绕过漏洞(CVE-2018-8715)
  • [2021]Zookeeper getAcl命令未授权访问漏洞概述与解决
  • [C# 开发技巧]如何使不符合要求的元素等于离它最近的一个元素
  • [CSS]盒子模型