vscode CMAKE 配置调试

news2024/11/23 4:46:07

概述

记录使用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.coloradmin.cn/o/1846599.html

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

相关文章

2000-2023年各省名义GDP、实际GDP、GDP平减指数数据(含原始数据+计算过程+计算结果)(以2000年为基期)

2000-2023年各省名义GDP、实际GDP、GDP平减指数数据&#xff08;含原始数据计算过程计算结果&#xff09;&#xff08;以2000年为基期&#xff09; 1、时间&#xff1a;2000-2023年 2、范围&#xff1a;31省 3、指标&#xff1a;名义GDP、国内生产总值指数、实际GDP、GDP平减…

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

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

从数据资源到数据资产之数据要素及其市场运作【AMT企源】

题记 本文旨在探讨企业数据资产化的过程中&#xff0c;数据要素及其资产化市场的构成&#xff0c;形成可交易的数据产品的过程&#xff0c;以及如何在大数据交易市场中发挥价值。最后通过一个典型案例的分析&#xff0c;浅谈数据要素的社会化配置与数据资产的入表&#xff0c;…

G7易流赋能化工物流,实现安全、环保与效率的共赢

近日&#xff0c;中国物流与采购联合会在古都西安举办了备受瞩目的第七届化工物流安全环保发展论坛。以"坚守安全底线&#xff0c;追求绿色发展&#xff0c;智能规划化工物流未来"为主题&#xff0c;该论坛吸引了众多政府部门、行业专家和企业代表的参与。G7易流作为…

“用友审批+民生付款”,YonSuite让企业发薪更准时

随着现代企业经营模式的不断创新和市场竞争的加剧&#xff0c;企业薪资管理和发放的效率、准确性和及时性已成为企业管理的重要一环。然而&#xff0c;在实际操作中&#xff0c;许多企业面临着薪资管理复杂、发放流程繁琐、数据不准确等难点和痛点。为了解决这些问题&#xff0…

【AI工具】探索创意与效率:xs.tools 网站介绍

在这个数字化时代,工具的创新和效率对我们的日常工作和生活至关重要。"xs.tools" 网站是一个汇集了众多有趣且实用的小工具的平台,它不仅帮助用户快速找到所需的工具,还能激发灵感,提升创造力。 一、网站概览 "xs.tools" 提供了一个简洁而直观的界面…

利用GD32F470的定时器实现频率和占空比测试

1&#xff09;main函数代码如下&#xff1a; #include "gd32f4xx.h" #include <stdio.h> #include "gd32f470i_eval.h" #include "systick.h"void TIM_PwmInit(void) {rcu_periph_clock_enable(RCU_GPIOA);/* PWM输出管脚为复用推挽模式 …

ssl证书90天过期?保姆级教程——使用acme.sh实现证书的自动续期

腾讯云相关文档相关参考-有的点不准确 前言 最近https到期了&#xff0c;想着手动更新一下https证书&#xff0c;结果发现证书现在的有效期只有90天&#xff0c;于是想找到一个自动更新证书的工具&#xff0c;发现了acme.sh&#xff0c;但是网上的文章质量参差不齐&#xff0…

基于Web的图书管理系统运行教程

1.5、安装数据库和数据库管理工具 目前作者所有毕设源码数据库都用 MySQL5.7版本&#xff0c;强烈建议初学者跟作者保持一致&#xff0c;避免出现其他错误&#xff0c;待运行成功后再根据需要调整数据库版本。 MySQL5.7安装教程请看作者另一篇文章&#xff1a;《MySQL绿色版安…

JavaScript--函数的参数列表以及arguments的用法

函数声明时&#xff0c;参数的问题 即使函数在定义时没有显示声明任何参数&#xff0c;你仍然可以在调用该函数时传递参数。 这是因为 JavaScript 函数内部有一个隐含的 arguments 对象&#xff0c;它包含了所有传递给函数的参数。 示例 我们来通过一些示例代码来更清楚地说…

vue项目中dom拖动排序功能实现

vue项目中拖动元素改变其顺序的功能实现 实现此功能&#xff0c;我利用的是SortableJs,其官网上直接介绍其为功能强大的js拖拽库&#xff0c;只需要简单的代码即可实现dom拖拽 1.下载 npm i sortablejs 2.引入 使用时&#xff0c;我们在那个页面中使用&#xff0c;就在该vue文…

Linux基础篇-逻辑卷管理

首先我们要知道&#xff0c;逻辑卷也来源于物理磁盘&#xff0c;只是将他们统一定义和重新分配空间。这一点非常重要&#xff0c;只有理解了这一定才能更好的理解逻辑卷和卷组。 本文介绍的是最常用的线性卷。 什么是线性卷&#xff1f;复杂的定义没必要去看&#xff0c;简单来…

Python基础教程(二十七):urllib模块

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; &#x1f49d;&#x1f49…

软件开发和部署,蓝绿环境、灰度环境

发布策略 目前常见的发布策略有蓝绿发布、红黑发布、金丝雀&#xff08;灰度&#xff09;发布、滚动发布等 在项目迭代的过程中&#xff0c;不可避免需要”上线“。上线对应着部署&#xff0c;或者重新部署&#xff1b;部署对应着修改&#xff1b;修改则意味着风险。 蓝绿发…

竞赛选题 LSTM的预测算法 - 股票预测 天气预测 房价预测

0 简介 今天学长向大家介绍LSTM基础 基于LSTM的预测算法 - 股票预测 天气预测 房价预测 这是一个较为新颖的竞赛课题方向&#xff0c;学长非常推荐&#xff01; &#x1f9ff; 更多资料, 项目分享&#xff1a; https://gitee.com/dancheng-senior/postgraduate 1 基于 Ke…

uni-app中的css3选择器使用

2.给 view 添加样式 .box view{ font-size: 40upx; color: #8A6DE9; } 3.想改变某一个view 样式 .box>view:nth-child(1){ background: #09BB07; } .box>view:nth-child(2){ background: red; } .box>view:nth-child(3){ background: yellow; } 注意&am…

MMDetection 目标检测 —— 环境搭建和基础使用

参考文档 开始你的第一步 — MMDetection 3.3.0 文档 依赖 步骤 0. 下载并安装 Anaconda。 步骤 1. 创建并激活一个 conda 环境。&#xff08;我选择的是python3.10&#xff09; conda create --name openmmlab python3.8 -y conda activate openmmlab 步骤 2. 基于 PyTo…

【算法基础】Newton求根法

文章目录 Newton求根法算法求解平方根 Newton求根法 1664年Newton提出了一种迭代求根的方法。这种方法有时也被叫做Raphson方法。虽然Newton更早发现了这种方法&#xff0c;但Raphson首先在自己的文章中介绍了这种方法。 该方法解决的问题如下。 给定一个方程&#xff1a; …

AXI学习笔记

文章目录 AXI口诀&#xff1a;AXI三种总线&#xff0c;三种接口&#xff0c;一个协议背景知识一、 AMBA&#xff1a;二、AXI2.1 通信协议与握手机制2.2 AXI协议特点2.3 三种AXI总线类型&#xff08;AXI4、AXI4-lite、AXI4-stream&#xff09;2.3.1 AXI通道&#xff08;5通道&am…

CleanMyMac中文版2024官方正式版下载!你的电脑清洁专家!

CleanMyMac中文版&#xff0c;你的电脑清洁专家&#xff01;✨&#x1f9f5; 你是否曾为电脑的卡顿和垃圾文件而烦恼&#xff1f;别担心&#xff0c;CleanMyMac中文版来帮你解决这些问题&#xff01;这款神奇的软件不仅可以帮助你清理垃圾文件&#xff0c;还能优化系统性能&…