DAY2:插件学习

文章目录

  • 插件学习
    • Clang
    • Google Test
    • CMake
    • Doxygen
  • 收获

插件学习

Clang

是什么:Clang 是指 LLVM 项目的编译器的前端部分,支持对 C 家族语言(C、C++、Objective-C)的编译。Clang 的功能包括:词法分析、语法分析、语义分析、生成中间中间代码 LLVM Intermediate Representation (LLVM IR)。

在这里插入图片描述

为什么:模块化设计,各模块职责单一,功能清晰简单容易理解,可复用可移植性强,易于扩展增强
怎么做:

  • Clang入门教程

  • llvm编译的基本概念和流程.md

在这里插入图片描述

Google Test

是什么:GoogleTest helps you write better C++ tests.

为什么:Since GoogleTest is based on the popular xUnit architecture

怎么做:

  • Gtest入门1:安装和使用
  • GoogleTest Primer-需要细看
  • GPT-4
    在这里插入图片描述

在这里插入图片描述

写测试程序时,无法接收std::cin,解决办法是将launch.json文件中externalConsole字段设为true,即VSCode 将在外部终端中运行程序。

CMake

是什么:开源的跨平台构建系统,主要用于管理项目的构建过程。它通过使用配置文件(CMakeLists.txt)来生成平台和编译器无关的构建指令(例如,Makefile 或 Visual Studio 项目文件)。(–GPT 4)
为什么:从源代码到可执行文件的构建指令很繁杂同时各个平台不一致,而CMake使得这个过程在不同平台标准化。
怎么做:多写CMakeLists.txt,搞懂常用的命令(例如include_directories, link_directories, target_link_libraries
难点:容易混淆一些常用命令的作用:

  • include_directories: 指定头文件的路径,使编译器能够找到库的头文件
  • link_directories: 指定库文件的路径,使编译器知道在哪里查找库文件。
  • target_link_libraries: 将库文件实际链接到可执行文件
    例如:
cmake_minimum_required(VERSION 3.10)project(QuickSort)set(CMAKE_CXX_STANDARD 14)# 设置googletest的安装路径
set(GTEST_ROOT /Users/XXXX/gtest/googletest/_install)# 包含Google Test头文件目录(指定头文件的路径,使编译器能够找到 gtest 的头文件。)
include_directories(${GTEST_ROOT}/include)# 链接Google Test库目录(告诉编译器库文件所在的路径。)
link_directories(${GTEST_ROOT}/lib)# 添加源文件
add_executable(QuickSort quicksort.cpp)# 链接Google Test库(将库文件链接到指定的目标可执行文件或库。)
target_link_libraries(QuickSort gtest gtest_main)

Doxygen

是什么:一个将文件的特定注释转化为文档的工具。
为什么:一些开源项目会使用音视频开发ffmpeg
怎么做:Doxygen入门

收获

  • gtest不需要手写main

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

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

相关文章

【源码+文档+调试讲解】智能仓储系统 JSP

摘 要 随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,智能仓储系统当然也不能排除在外。智能仓储系统是以实际运用为开发背景,运用软件工程开发方法,采…

小车解决连接 Wi-Fi 后还不能上网问题

小车解决连接 Wi-Fi 后还不能上网问题 跟大家讲讲:为什么小车连接我们自己的热点以后还是不能联网呢? 小车连接我们的热点以后需要访问外面的网络,我们访问网络使用域名来进行的,所以要对域名进行解析,但是小车原来的域…

猫咪浮毛太多怎么处理?6年铲屎官最值得买的猫毛空气净化器分享

作为一位拥有6年铲屎经验的铲屎官,家中既有宝宝又有毛孩子的铲屎官家庭来说,空气中的宠物异味和猫毛不仅影响生活质量,更关乎家人的健康。普通空气净化器虽然能够提供基本的空气净化,但对于养猫家庭的特定需求,如去除宠…

使用 YOLOv8 实现人体姿态检测

引言 在计算机视觉的各种应用中,人体姿态检测是一项极具挑战性的任务,它能够帮助我们理解人体各部位的空间位置。本文将详细介绍如何使用 YOLOv8 和 Python 实现一个人体姿态检测系统,涵盖模型加载、图像预处理、姿态预测到结果可视化的全流…

《基于 Kafka + Flink + ES 实现危急值处理措施推荐和范围校准》

📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 近期刚转战 CSDN,会严格把控文章质量,绝不滥竽充数,欢迎多多交流。&am…

爬虫-豆瓣读书排行榜

获取数据 requests库 获取数据环节需要用到requests库。安装方式也简单 pip install requests 爬取页面豆瓣读书 Top 250 用requests库来访问 import requests res requests.get(https://book.douban.com/top250/) 解析: 导入requests库调用了requests库中的…

2024年文化研究与数字媒体国际会议 (CRDM 2024)

2024年文化研究与数字媒体国际会议 (CRDM 2024) 2024 International Conference on Cultural Research and Digital Media 【重要信息】 大会地点:珠海 大会官网:http://www.iccrdm.com 投稿邮箱:iccrdmsub-conf.com 【注意:稿将…

程序员必知的 89 个操作系统核心概念

1. 操作系统(Operating System,OS):是管理计算机硬件与软件资源的系统软件,同时也是计算机系统的内核与基石。操作系统需要处理管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系…

开放式耳机的哪些品牌比较好?开放式耳机爆款2024机型强烈推荐

现在耳机越来越难挑,一是市场上的品牌越来越多,网红品牌,专业的品牌可选择性太多了,但是质量什么的就没有办法保证了,所以作为耳机测评师,为了让大家能够挑选到适合自己的那一款开放式耳机,我写…

Java-SpringBoot启动报端口被占用,如何找到占用端口的进程并杀掉

背景 当我们本地启动多个项目,可能会出现端口被占用的情况,当然有时候可能idea窗口关闭,但是进程并没有kill掉,导致再次启动项目时也会报端口被占用的错误。 通常的做法是打开任务管理器,然后kill掉对应的进程。 首先…

位置编码的具体计算方式(公式解释)

公式 (10.6.2) 描述了位置编码的具体计算方式,这种位置编码基于正弦和余弦函数,用于在自注意力机制中引入位置信息。下面我们详细解释公式和代码。 公式 (10.6.2) 公式 (10.6.2) 的目的是为输入序列中的每个词元添加一个位置编码,以保留序列…

MOE技术简要记录

MOE GShard: Scaling Giant Models with Conditional Computation and Automatic Sharding 模型设计: 特点: (1) 专家容量 expert capacity 强制规定了每一个expert所负责处理的token数量有一个最大值,这个最大值就叫专家容量;(…

RK3588 linux RGA初探

概述 RGA (Raster Graphic Acceleration Unit)是一个独立的2D硬件加速器,可用于加速点/线绘制,执行图像缩放、旋转、bitBlt、alpha混合等常见的2D图形操作。 本文基于以下版本编写: commit fb5f019ea0191ec1c34f49ac8be447ac8921aadd (HEAD -> main,…

服务器数据恢复—raid5阵列硬盘出现大量坏道的数据恢复案例

服务器存储数据恢复环境&故障: 一台DELL EqualLogic PS 4000存储中有一组由12块磁盘组建的raid5阵列,存储空间划分3个同等大小的卷,采用的VMFS文件系统。 两块硬盘指示灯亮黄色,raid5阵列崩溃,存储变得不可用。 服…

C语言学习记录Day2

for循环 for(表达式1;表达式2;表达式3) 循环语句; 注:表达式1:初始化部分.表达式2:条件判断部分 表达式3:调整部分 不可再for循环体内修改循环变量,防止f…

厂拉拉获清科文创天使轮投资

最新信息:源头工厂测品平台厂拉拉APP已正式获得北京清科文创千万级的天使轮投资。 本轮资金将主要用于测品师、品鉴官队伍的引流,及APP3.0数字供应链和用户购物行为算法技术、算力模型的建设。 厂拉拉APP的营运主体为广州智邦远见科技有限公司&#xf…

Java基础概念

1.注释和关键字 (1)注释 什么是注释?注释就是对代码进行解释说明的文字 注释的分类?单行注释,多行注释,文档注释 注释的使用细节? 注释的内容不会参与编译和运行,仅仅是对代码的…

【Linux】touch

我们在介绍ls这个命令时,提到每个文件在Linux下面都会记录许多的时间参数,其实是有三个主要的变动时间,那么三个时间的意义是什么? 修改时间(modification time,mtime):当该文件的【内容数据】…

十二、数组

1. 一维数组的创建和初始化 数组是一组相同类型元素的集合。 变长数组是不能初始化的。 数组的初始化是指,在创建数组的同时给数组的内容一些合理初始值(初始化)。 例如上图 char ch3[ ]"abc";里面方的就是 a b c \0 char ch3[ …

EDA 2023 年世界国家suicide rate排名

文章目录 前言:关于数据集列 导入模块导入数据数据预处理探索性数据分析按性别划分的自杀率 [箱线图]相关矩阵热图自杀率最高的 15 个国家变化百分比最高的 15 个国家/地区2023 年世界地图上自杀率的国家 结尾: 前言: 随着社会的不断发展和变迁,人们对于各种社会问…