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

【CMake】使用CMake在Visual Studio 构建多cpp文件项目

首先,我们在 C m a k e Cmake Cmake文件下写入以下代码:

#需求的最低cmake程序版本
cmake_minimum_required(VERSION 3.12)

#本工程的名字
project(OpenGL)

#支持的C++版本
set(CMAKE_CXX_STANDARD 20)

#本工程主程序文件及输出程序名称,生成exe
add_executable(glStudy "main.cpp")

生成解决方案后加入 f u n c . h func.h func.h f u n c . c p p func.cpp func.cpp
在这里插入图片描述
f u n c . h func.h func.h

#pragma once
#include<iostream>
void func();

f u n c . c p p func.cpp func.cpp

#include"func.h"

void func() {
	std::cout << "调用了func函数\n";
}

然后在 m a i n . c p p main.cpp main.cpp中调用

#include "func.h"

int main() {
	std::cout << "Hello OpenGL! \n";
	func();

	return 0;
}

成功调用:
在这里插入图片描述可以发现是 C M a k e CMake CMake中自动生成了相应的代码:

#需求的最低cmake程序版本
cmake_minimum_required(VERSION 3.12)

#本工程的名字
project(OpenGL)

#支持的C++版本
set(CMAKE_CXX_STANDARD 20)

#本工程主程序文件及输出程序名称,生成exe
add_executable(glStudy "main.cpp" "func.h" "func.cpp")

实际上,当文件过多时,代码会很长,可以设置一个变量,然后把所有文件添加进变量,然后加入这个变量即可:

#需求的最低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})

运行成功:
在这里插入图片描述


http://www.kler.cn/a/307439.html

相关文章:

  • 94个属于一区且接受医工交叉领域投稿的期刊汇总|个人观点·24-11-13
  • Ubuntu安装MySQL8
  • 大数据技术之HBase中的HRegion
  • Linux 进程线程间通信总结
  • 想租用显卡训练自己的网络?AutoDL保姆级使用教程(PyCharm版)
  • Vim9 语法高亮syntax 在指定的缓冲区和窗口执行命令
  • pytest 接口测试
  • C++——写一函数求sinh(x)的值,求sinh(x)的近似公式为sinh(x)=(e^x+e^(-x))/2。
  • Java项目: 基于SpringBoot+mybatis+maven校园资料分享平台(含源码+数据库+答辩PPT+毕业论文)
  • 时空大数据平台:激活新质生产力的智慧引擎
  • GitLab CI_CD 从入门到实战笔记
  • 响应式CSS 媒体查询——WEB开发系列39
  • 【系统架构设计师-2015年真题】案例分析-答案及详解
  • vulkano (rust) 画一个三角形 (vulkan 渲染窗口初始化 (Linux) 下篇)
  • [000-002-01].第03节:Linux系统下Oracle的安装与使用
  • 【C++11 —— 线程库】
  • 近乎实时的物联网数据管道架构
  • 大数据新视界 --大数据大厂之MongoDB与大数据:灵活文档数据库的应用场景
  • 微信小程序如何设置左侧导航栏跟随页面滑动
  • Leetcode—1137. 第 N 个泰波那契数【简单】
  • uniapp 实现Toast轻提示!
  • 分类预测|基于黑翅鸢优化最小二乘支持向量机分类预测Matlab程序BKA-LSSVM 多特征输入多类别输出 含基础LSSVM
  • 面试—MySQL
  • 自制一键杀死端口进程程序# tomcat 如何杀死tomcat进程
  • 【C++题目】1.日期差值
  • MySQL篇(运算符)(持续更新迭代)