vscode CMAKE 配置调试

概述

记录使用VSCODE中的CMAKE拓展构建项目时出现的报错
CMakePresets.json

{"version": 6,"configurePresets": [{"name": "x64-debug","displayName": "x64-debug","cmakeExecutable": "D:/Program Files/Microsoft Visual Studio/2022/Enterprise/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/bin/cmake.exe","generator": "Ninja","binaryDir": "${workspaceFolder}/build/${presetName}","installDir": "${workspaceFolder}/install/${presetName}","cacheVariables": {"CMAKE_BUILD_TYPE": "Debug","CMAKE_C_COMPILER": "D:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Tools/MSVC/14.40.33807/bin/Hostx64/x64/cl.exe","CMAKE_CXX_COMPILER": "D:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Tools/MSVC/14.40.33807/bin/Hostx64/x64/cl.exe","CMAKE_MAKE_PROGRAM": "D:/Program Files/Microsoft Visual Studio/2022/Enterprise/Common7/IDE/CommonExtensions/Microsoft/CMake/Ninja/ninja.exe"},"condition": {"type": "equals","lhs": "${hostSystemName}","rhs": "Windows"}}]
}

CMakeLists.txt

cmake_minimum_required (VERSION 3.28)project("THREAD_YOLO_RT_VSCODE")add_executable(THREAD_YOLO_RT_VSCODE main.cpp main.h)if (CMAKE_VERSION VERSION_GREATER 3.12)set_property(TARGET THREAD_YOLO_RT_VSCODE PROPERTY CXX_STANDARD 20)
endif()

报错1:

The C++ compiler amd64cl.exe is not able to compile a simple test program

解决方法1:

按照The C++ compiler amd64cl.exe is not able to compile a simple test program的方法配置,无法解决。

这里直接找到所使用的cmake.exe所对应的CMakeTestCCompiler.cmakeCMakeTestCXXCompiler.cmake
然后分别修改:

set(CMAKE_C_COMPILER_WORKS TRUE)	# 添加这一行
if(NOT CMAKE_C_COMPILER_WORKS)PrintTestCompilerStatus("C")...

set(CMAKE_CXX_COMPILER_WORKS TRUE)		# 添加这一行
if(NOT CMAKE_CXX_COMPILER_WORKS)PrintTestCompilerStatus("CXX")...

然后,保存重新调试即可。


接下来继续写CMakeLists.txt

cmake_minimum_required (VERSION 3.28)# 如果支持,请为 MSVC 编译器启用热重载。
if (POLICY CMP0141)cmake_policy(SET CMP0141 NEW)set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT "$<IF:$<AND:$<C_COMPILER_ID:MSVC>,$<CXX_COMPILER_ID:MSVC>>,$<$<CONFIG:Debug,RelWithDebInfo>:EditAndContinue>,$<$<CONFIG:Debug,RelWithDebInfo>:ProgramDatabase>>")
endif()if(POLICY CMP0146)cmake_policy(SET CMP0146 NEW)
endif()project("THREAD_YOLO_RT_VSCODE")# 检查是否使用 MSVC 作为编译器
if (MSVC)# 如果是 MSVC,设置 OpenCV_DIR 为 MSVC 版本set(OpenCV_DIR "D:/program/opencv/build/x64/vc16/lib")find_package(OpenCV 4.10 REQUIRED)
else()# 如果不是 MSVC,设置 OpenCV_DIR 为 GCC 版本set(OpenCV_DIR "D:/program/Opencv411")find_package(OpenCV 4.1.1 REQUIRED)
endif()if(OpenCV_FOUND)message(STATUS  "OpenCV library found at ${OpenCV_INCLUDE_DIRS}")
else()message(FATAL_ERROR "Cannot find OpenCV in the specified directory.")
endif()set(CUDA_HOST_COMPILER ${CMAKE_CXX_COMPILER})
set(CUDA_DIR "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v10.2")find_package(CUDA REQUIRED)
if(CUDA_FOUND)message(STATUS "CUDA library is found!")
else()message(FATAL_ERROR "CUDA library not found!")
endif()# 设置CUDA NVCC编译器标志,指定优化级别和计算能力
set(CUDA_NVCC_FLAGS${CUDA_NVCC_FLAGS};-O3 # 优化级别-gencode arch=compute_50,code=sm_50 # 指定GPU架构和计算能力,这里是针对sm_61
)# 设置TensorRT的根目录并查找TensorRT头文件和库
set(TENSORRT_ROOT "D:/program/TensorRT-8.5.1.7")
find_path(TENSORRT_INCLUDE_DIR NvInfer.h HINTS ${TENSORRT_ROOT} ${CUDA_TOOLKIT_ROOT_DIR} PATH_SUFFIXES include)
MESSAGE(STATUS "Found TensorRT headers at ${TENSORRT_INCLUDE_DIR}")
find_library(TENSORRT_LIBRARY_INFER nvinfer HINTS ${TENSORRT_ROOT} ${TENSORRT_BUILD} ${CUDA_TOOLKIT_ROOT_DIR} PATH_SUFFIXES lib lib64 lib/x64)
find_library(TENSORRT_LIBRARY_INFER_PLUGIN nvinfer_plugin HINTS ${TENSORRT_ROOT} ${TENSORRT_BUILD} ${CUDA_TOOLKIT_ROOT_DIR} PATH_SUFFIXES lib lib64 lib/x64)
find_library(TENSORRT_LIBRARY_NVONNXPARSER nvonnxparser HINTS ${TENSORRT_ROOT} ${TENSORRT_BUILD} ${CUDA_TOOLKIT_ROOT_DIR} PATH_SUFFIXES lib lib64 lib/x64)
find_library(TENSORRT_LIBRARY_NVPARSERS nvparsers HINTS ${TENSORRT_ROOT} ${TENSORRT_BUILD} ${CUDA_TOOLKIT_ROOT_DIR} PATH_SUFFIXES lib lib64 lib/x64)
set(TENSORRT_LIBRARY ${TENSORRT_LIBRARY_INFER} ${TENSORRT_LIBRARY_INFER_PLUGIN} ${TENSORRT_LIBRARY_NVONNXPARSER} ${TENSORRT_LIBRARY_NVPARSERS})
MESSAGE(STATUS "Find TensorRT libs at ${TENSORRT_LIBRARY}")
# 处理标准库查找结果
find_package_handle_standard_args(TENSORRT DEFAULT_MSG TENSORRT_INCLUDE_DIR TENSORRT_LIBRARY)
# 如果没有找到TensorRT库,输出错误信息
if(NOT TENSORRT_FOUND)message(ERROR "Cannot find TensorRT library.")
endif()aux_source_directory("src" SRC_LIST)add_executable(THREAD_YOLO_RT_VSCODE main.cpp main.h)
target_include_directories(THREAD_YOLO_RT_VSCODE PRIVATE ${OpenCV_INCLUDE_DIRS} ${TENSORRT_INCLUDE_DIR} ${CUDA_INCLUDE_DIRS} "include")
target_link_libraries(THREAD_YOLO_RT_VSCODE PRIVATE ${OpenCV_LIBS} ${CUDA_LIBRARIES} ${CUDA_CUBLAS_LIBRARIES} ${CUDA_cudart_static_LIBRARY} ${TENSORRT_LIBRARY})if (CMAKE_VERSION VERSION_GREATER 3.12)set_property(TARGET THREAD_YOLO_RT_VSCODE PROPERTY CXX_STANDARD 20)
endif()# TODO: 如有需要,请添加测试并安装目标。

报错2

[cmake] CMake Error at CMakeLists.txt:36 (find_package):
[cmake]   By not providing "FindCUDA.cmake" in CMAKE_MODULE_PATH this project has
[cmake]   asked CMake to find a package configuration file provided by "CUDA", but
[cmake]   CMake did not find one.
[cmake] 
[cmake]   Could not find a package configuration file provided by "CUDA" with any of
[cmake]   the following names:
[cmake] 
[cmake]     CUDAConfig.cmake
[cmake]     cuda-config.cmake

解决方法2

Unknown CMake command “cuda_add_library“.
c++ - 如何使用 CMake 3.15 查找和链接 CUDA 库?
【已解决】cmake报告找不到CUDA环境@Windows VC2022
如何让cmake的CUDA找到(How to let cmake find CUDA)如何解决Specify CUDA_TOOLKIT_ROOT_DIR(未尝试)
CMake does not properly find CUDA library

最后修改CMakeLists.txt

# 将
set(CUDA_DIR "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v10.2")
find_package(CUDA REQUIRED)
if(CUDA_FOUND)message(STATUS "CUDA library is found!")
else()message(FATAL_ERROR "CUDA library not found!")
endif()# 修改为
set(CUDA_TOOLKIT_ROOT_DIR "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v10.2")
find_package(CUDAToolkit REQUIRED)
if(CUDAToolkit_FOUND)message(STATUS "CUDA library is found!")
else()message(FATAL_ERROR "CUDA library not found!")
endif()

继续写CMakeLists.txt

cmake_minimum_required (VERSION 3.28)# 如果支持,请为 MSVC 编译器启用热重载。
if (POLICY CMP0141)cmake_policy(SET CMP0141 NEW)set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT "$<IF:$<AND:$<C_COMPILER_ID:MSVC>,$<CXX_COMPILER_ID:MSVC>>,$<$<CONFIG:Debug,RelWithDebInfo>:EditAndContinue>,$<$<CONFIG:Debug,RelWithDebInfo>:ProgramDatabase>>")
endif()if(POLICY CMP0146)cmake_policy(SET CMP0146 NEW)
endif()project("THREAD_YOLO_RT_VSCODE")# 检查是否使用 MSVC 作为编译器
if (MSVC)# 如果是 MSVC,设置 OpenCV_DIR 为 MSVC 版本set(OpenCV_DIR "D:/program/opencv/build/x64/vc16/lib")find_package(OpenCV 4.10 REQUIRED)
else()# 如果不是 MSVC,设置 OpenCV_DIR 为 GCC 版本set(OpenCV_DIR "D:/program/Opencv411")find_package(OpenCV 4.1.1 REQUIRED)
endif()if(OpenCV_FOUND)message(STATUS  "OpenCV library found at ${OpenCV_INCLUDE_DIRS}")
else()message(FATAL_ERROR "Cannot find OpenCV in the specified directory.")
endif()# 设置CUDA
set(CUDA_HOST_COMPILER ${CMAKE_CXX_COMPILER})
set(CUDA_TOOLKIT_ROOT_DIR "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v10.2")
find_package(CUDAToolkit REQUIRED)
if(CUDAToolkit_FOUND)message(STATUS "CUDA library is found!")
else()message(FATAL_ERROR "CUDA library not found!")
endif()# 设置CUDA NVCC编译器标志,指定优化级别和计算能力
set(CUDA_NVCC_FLAGS${CUDA_NVCC_FLAGS};-O3 # 优化级别-gencode arch=compute_50,code=sm_50 # 指定GPU架构和计算能力,这里是针对sm_61
)# 设置TensorRT的根目录并查找TensorRT头文件和库
set(TENSORRT_ROOT "D:/program/TensorRT-8.5.1.7")
find_path(TENSORRT_INCLUDE_DIR NvInfer.h HINTS ${TENSORRT_ROOT} ${CUDA_TOOLKIT_ROOT_DIR} PATH_SUFFIXES include)
MESSAGE(STATUS "Found TensorRT headers at ${TENSORRT_INCLUDE_DIR}")
find_library(TENSORRT_LIBRARY_INFER nvinfer HINTS ${TENSORRT_ROOT} ${TENSORRT_BUILD} ${CUDA_TOOLKIT_ROOT_DIR} PATH_SUFFIXES lib lib64 lib/x64)
find_library(TENSORRT_LIBRARY_INFER_PLUGIN nvinfer_plugin HINTS ${TENSORRT_ROOT} ${TENSORRT_BUILD} ${CUDA_TOOLKIT_ROOT_DIR} PATH_SUFFIXES lib lib64 lib/x64)
find_library(TENSORRT_LIBRARY_NVONNXPARSER nvonnxparser HINTS ${TENSORRT_ROOT} ${TENSORRT_BUILD} ${CUDA_TOOLKIT_ROOT_DIR} PATH_SUFFIXES lib lib64 lib/x64)
find_library(TENSORRT_LIBRARY_NVPARSERS nvparsers HINTS ${TENSORRT_ROOT} ${TENSORRT_BUILD} ${CUDA_TOOLKIT_ROOT_DIR} PATH_SUFFIXES lib lib64 lib/x64)
set(TENSORRT_LIBRARY ${TENSORRT_LIBRARY_INFER} ${TENSORRT_LIBRARY_INFER_PLUGIN} ${TENSORRT_LIBRARY_NVONNXPARSER} ${TENSORRT_LIBRARY_NVPARSERS})
MESSAGE(STATUS "Find TensorRT libs at ${TENSORRT_LIBRARY}")
# 处理标准库查找结果
find_package_handle_standard_args(TENSORRT DEFAULT_MSG TENSORRT_INCLUDE_DIR TENSORRT_LIBRARY)
# 如果没有找到TensorRT库,输出错误信息
if(NOT TENSORRT_FOUND)message(ERROR "Cannot find TensorRT library.")
endif()aux_source_directory("src" SRC_LIST)
add_executable(THREAD_YOLO_RT_VSCODE main.cpp main.h)
target_sources(THREAD_YOLO_RT_VSCODE PRIVATE ${SRC_LIST})
target_include_directories(THREAD_YOLO_RT_VSCODE PRIVATE ${OpenCV_INCLUDE_DIRS} ${TENSORRT_INCLUDE_DIR} ${CUDAToolkit_INCLUDE_DIRS} "include")
target_link_libraries(THREAD_YOLO_RT_VSCODE PRIVATE ${OpenCV_LIBS} ${CUDA_cublas_LIBRARY} ${CUDA_cudart_static_LIBRARY} ${TENSORRT_LIBRARY})
# target_link_directories(THREAD_YOLO_RT_VSCODE PRIVATE ${CUDAToolkit_LIBRARY_DIR})if (CMAKE_VERSION VERSION_GREATER 3.12)set_property(TARGET THREAD_YOLO_RT_VSCODE PROPERTY CXX_STANDARD 20)
endif()# TODO: 如有需要,请添加测试并安装目标。

错误3

[build] 'DOSKEY' is not recognized as an internal or external command,
[build] operable program or batch file.
[build] RC Pass 1: command "rc /fo CMakeFiles\THREAD_YOLO_RT_VSCODE.dir/manifest.res CMakeFiles\THREAD_YOLO_RT_VSCODE.dir/manifest.rc" failed (exit code 0) with the following output:
[build] 系统找不到指定的文件。
[build] ninja: build stopped: subcommand failed.

解决方法3

vs编译cmake报错RC Pass 1: command “rc /foCMakeFiles\cmTC_0cba6.dir/manifest.res CMakeFiles\cmTC_0cba6.di

在VScode中出现:‘DOSKEY‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。
在VS中CMake生成出现报错 RC Pass 1: command “rc /foCMakeFiles\cmTC_2347.dir/manifest.res CMakeFiles\cmTC_2347

审核了环境变量,增加了C:\Windows\SysWOW64 项。
在这里插入图片描述
重新生成,出现报错:

MT: command "CMAKE_MT-NOTFOUND /nologo /manifest CMakeFiles\THREAD_YOLO_RT_VSCODE.dir/intermediate.manifest /out:CMakeFiles\THREAD_YOLO_RT_VSCODE.dir/embed.manifest /notify_update" failed (exit code 0x0) with the following output:
系统找不到指定的文件。

CMake设置MSVC工程MT/MTd/MD/MDd
运行时库 /MT /MTD /MD /MDD
Windows 下基于 Visual Studio Code 使用 CMake + MinGW 配置 C++ 开发环境

尝试参考方法无效。最后尝试删除缓存并重新配置:
在这里插入图片描述
再重新生成,即可生成THREAD_YOLO_RT_VSCODE.exe,调试运行有效。

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

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

相关文章

Hi3861 OpenHarmony嵌入式应用入门--中断按键

本篇讲解gpio的中断使用方式。 硬件原理图如下&#xff0c;与上一篇一样的电路 GPIO API API名称 说明 hi_u32 hi_gpio_init(hi_void); GPIO模块初始化 hi_u32 hi_io_set_pull(hi_io_name id, hi_io_pull val); 设置某个IO上下拉功能。 hi_u32 hi_gpio_set_dir(hi_gpio_…

cefsharp 修改请求头request.Headers,以实现某种请求验证(v100+已测试)含主要源码和注释

(一)目的:cefsharp实现修改请求头 Tip:网上搜的很多代码都无法实现(要么版本较低,方法有变,要么就行不通),较多的错误是:集合属性只读。其中一个bili网友的测试方法注解一张图,但没有具体代码。参考一下。 (二)实现方法 2.1 创建对象 ChromiumWebBrowser home…

数据库精选题(二)(引言+关系代数)

&#x1f308; 个人主页&#xff1a;十二月的猫-CSDN博客 &#x1f525; 系列专栏&#xff1a; &#x1f3c0;数据库 &#x1f4aa;&#x1f3fb; 十二月的寒冬阻挡不了春天的脚步&#xff0c;十二点的黑夜遮蔽不住黎明的曙光 目录 前言 常见概念 一、什么是数据库&#xf…

神舟电脑怎么清理缓存文件?介绍几种简单有效方法

随着日常使用神舟电脑的时间增长&#xff0c;各种缓存文件、临时文件以及无用的数据会逐渐堆积&#xff0c;这不仅占据了宝贵的磁盘空间&#xff0c;还可能拖慢系统的运行速度&#xff0c;影响我们的使用体验。因此&#xff0c;定期清理神舟电脑中的缓存文件变得至关重要。本文…

Vue3插件安装

一、volar插件安装 volar&#xff1a;Vue文件的语法提示和高亮提醒。volar已经更名为Vue - Official&#xff0c;其安装步骤如下。 (1)打开vscode&#xff0c;点击扩展面板&#xff0c;在搜索窗口中输入volar&#xff0c;选择Vue - Official进行安装。 &#xff08;2&#xff0…

如何使用gprof对程序进行性能分析

如何使用gprof对程序进行性能分析 目录 1 gprof概述 2 gprof原理简述 3 gprof使用 3.1 gprof使用简述 3.2 gprof使用示例 4 小结 1 gprof概述 gprof 是 一个 GNU 的程序性能分析工具&#xff0c;可以用于分析C\C程序的执行性能。gprof工具可以统计出各个函数的调用次数、执…

什么是 vCPU?有什么作用

vCPU 是物理 CPU 的虚拟化版本&#xff0c;是云计算的基本组成部分。这些虚拟化计算单元的一大优势是其良好的可扩展性&#xff0c;这也是它们在云托管中发挥重要作用的原因。 vCPU 有什么作用? vCPU(虚拟中央处理器)是物理CPU的虚拟化变体。换句话说&#xff0c;vCPU 是虚拟机…

邀请函 | 桥田智能出席AMTS展会 家族新成员正式发布

作为国际汽车制造技术与装备及材料专业展览会&#xff0c;AMTS将于2024年7月3-5日在上海新国际博览中心举行。本届展会以【向“新”而行 “智”领未来】为主题&#xff0c;聚焦汽车及新能源全产业链&#xff0c;围绕“车身工程、部件工程、新能源三电工程及未来汽车开发”等技…

重塑W来|暴雨携手英特尔®单路最强“芯”加速数智创新应用

近日&#xff0c;极“至”能&#xff0c;重塑“W”来—英特尔单路最强“芯”XeonW 方案研讨会在贵阳成果举办&#xff0c;行业精英们共聚一堂&#xff0c;了解Xeon W处理器的最新进展、卓越性能和多元应用场景&#xff0c;并针对最新的行业趋势、技术创新以及战略规划进行深入…

90 岁老人靠一辆自行车年赚 170 亿,捷安特如何打造山地车极致产品力?

一位富家小开在中年时经商失败&#xff0c;38岁时从零开始创业&#xff0c;最终在自行车整车市场占据了70%的份额&#xff0c;他是怎么做到的&#xff1f; 一家曾为美国自行车品牌代工的台湾工厂&#xff0c;成功从ToB转型为ToC业务&#xff0c;从90%的代工业务转变为全球最大…

QT 中charts各种图表的综合应用

此文章是根据Qt之QChart各个图表的简单使用&#xff08;含源码注释&#xff09;-CSDN博客进行的简单优化。 这里面用了几种数值轴QT 数值型坐标轴有那些&#xff1f;&#xff08;QValueAxis&#xff09;-CSDN博客&#xff0c;对图例进行了一定的设置&#xff0c;还有多个相同控…

LeetCode | 415.字符串相加

这道题可以直接使用api&#xff0c;一行代码解决&#xff0c;但是这样就失去了这道题原本的意思了&#xff0c;自己实现的话考虑竖式加法的形式&#xff0c;从两个数字的末尾开始相加&#xff0c;满十进1&#xff0c;当其中一个字符串遍历完了直接补0即可&#xff0c;直至遍历完…

SpringBoot的迭代史,SpringBoot和Spring和Java和Maven和Gradle版本兼容介绍

文章目录 系统环境要求&#xff1a;Spring Boot 3.1.xSpring Boot 3.0.xSpring Boot 2.7.xSpring Boot 2.6.xSpring Boot 2.5.xSpring Boot 2.4.xSpring Boot 2.3.xSpring Boot 2.2.xSpring Boot 2.1.xSpring Boot 2.0.xSpring Boot 1.5.xSpring Boot 1.4.xSpring Boot 1.3.xSp…

2024广东省职业技能大赛云计算赛项实战——Ansible部署Zabbix

Ansible部署Zabbix 前言 今年的比赛考了一道Ansible部署Zabbix的题目&#xff0c;要求就是用两台centos7.5的云主机&#xff0c;一台叫ansible&#xff0c;一台叫node&#xff0c;使用对应的软件包&#xff0c;通过ansible节点控制node节点安装zabbix服务。这道题还是算比较简…

【数据分享】《中国改革年鉴》1989-2022

最近老有同学过来询问《中国经济体制改革年鉴》、《中国改革年鉴》这两本数据的关系以及怎么获取这两本本数据。今天就在这里给大家分享一下这三本数据的具体情况。 《中国改革年鉴》由国家发展和改革委员会主管,中国经济体制改革研究会主办,中国经济体制改革杂志社编辑出版,是…

俄罗斯塔斯社TASS 媒体投放报道:海外媒体发稿扭转战局

大舍传媒 -作为一家颇具影响力的媒体机构&#xff0c;一直致力于传播客观、真实的新闻信息。最近&#xff0c;大舍传媒注意到了塔斯社TASS的报道&#xff0c;了解到海外媒体发稿对于扭转国内局势有着重要的影响。本文将就此话题进行分析探讨。 塔斯社TASS&#xff1a;俄语区最…

职工管理系统

需求分析 系统需要能够实现对职工信息的插入、删除、查找、修改和排序功能。职工信息包括职工编号、姓名、性别、出生年月、参加工作年月、学历、职务、住址、电话等信息。界面友好&#xff0c;通过菜单实现以上功能&#xff0c;操作简单&#xff0c;能够方便快捷地进行信息管理…

云渲染可以渲染SketchUp吗?

最近有很多人在问&#xff0c;云渲染可以渲染sketchup吗&#xff1f;答案是可以的&#xff0c;不过只有两三家支持&#xff0c;大部分云渲染是还是不支持的&#xff0c;今天就给大家介绍国内最新支持sketchup渲染的云渲染——炫云云渲染的使用方法。 炫云云渲染目前支持sketchu…

【QCustomPlot实战系列】QCPGraph堆叠面积图

在【QCustomPlot实战系列】QCPGraph堆叠图的基础上&#xff0c;使用setChannelFillGraph函数即可 static QCPScatterStyle GetScatterStyle(const QColor& color) {QPen pen(color, 2);return QCPScatterStyle(QCPScatterStyle::ssCircle,pen,Qt::white, 5); }static QCP…

Linux企业架构(存储服务)

1.1概述 存储&#xff1a;用户存放上传的内容&#xff08;数据&#xff09;&#xff0c;一般应用在网站集群中为何用&#xff1f; 1. 如果不使用存储&#xff0c;用户上传的数据就直接存放在网站服务器上&#xff0c;用户下次访问可能找不到 2. 如果使用存储&#xff0c;用户上…