【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中载入头文件:

cpp 复制代码
#include"funcs/func.h"

保存,编译运行后:

相关推荐
小小晓.12 小时前
零基础C++小白突破
开发语言·c++
何以解忧,唯有..12 小时前
Go语言类型转换详解:从基础到进阶实践
开发语言·后端·golang
何以解忧,唯有..12 小时前
Go 语言指针类型详解:从基础到实战
开发语言·后端·golang
阿i索12 小时前
【C++学习笔记】【基础】4.string类(2)——模拟实现
c++·笔记·学习
天天爱吃肉821812 小时前
豆包 vs DeepSeek API 对比分析报告
android·java·大数据·开发语言·功能测试·嵌入式硬件·汽车
geovindu12 小时前
python: Reactor Pattern
开发语言·python·设计模式·反应器模式
我不是懒洋洋12 小时前
从零实现一个消息队列:生产消费与持久化
c++
CS_SKILL13 小时前
吉比特 C++ 实习一面面经:一轮把 C++、容器、并发、排序和网络全扫了一遍
java·开发语言·校招面经·实习面经·技术面经·吉比特校招
feifeigo12313 小时前
基于多混沌映射的图像加密(MATLAB实现)
开发语言·matlab
techdashen13 小时前
Go 语言仓库 Top 100 贡献者分析报告
开发语言·后端·golang