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.pswp.cn/web/41921.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/41921.shtml
英文地址,請注明出處:http://en.pswp.cn/web/41921.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【源碼+文檔+調試講解】智能倉儲系統 JSP

摘 要 隨著科學技術的飛速發展,社會的方方面面、各行各業都在努力與現代的先進技術接軌,通過科技手段來提高自身的優勢,智能倉儲系統當然也不能排除在外。智能倉儲系統是以實際運用為開發背景,運用軟件工程開發方法,采…

Dubbo源碼解析-過濾器Filter

上篇我們介紹了消費端負載均衡的原理 Dubbo源碼解析-負載均衡-CSDN博客 因為篇幅問題,本文主單獨Dubbo消費端負載均原理,從dubbo源碼角度進行解析。 大家可以好好仔細讀一下本文。有疑問歡迎留言。 接著說明,讀Dubbo源碼最好是先對Spring源碼…

小車解決連接 Wi-Fi 后還不能上網問題

小車解決連接 Wi-Fi 后還不能上網問題 跟大家講講:為什么小車連接我們自己的熱點以后還是不能聯網呢? 小車連接我們的熱點以后需要訪問外面的網絡,我們訪問網絡使用域名來進行的,所以要對域名進行解析,但是小車原來的域…

【HarmonyOS NEXT】鴻蒙線程安全容器集collections.Map

collections.Map 一種非線性數據結構。 文檔中存在泛型的使用,涉及以下泛型標記符: K:Key,鍵V:Value,值 K和V類型都需為Sendable類型。 屬性 元服務API:從API version 12 開始&#xff0c…

Android 系統網絡、時間服務器配置修改

1.修改wifi 是否可用的檢測地址: 由于編譯的源碼用的是谷歌的檢測url,國內訪問不了,系統會認為wifi網絡受限,所以改成國內的地址 adb shell settings delete global captive_portal_https_urladb shell settings delete global captive_por…

貓咪浮毛太多怎么處理?6年鏟屎官最值得買的貓毛空氣凈化器分享

作為一位擁有6年鏟屎經驗的鏟屎官,家中既有寶寶又有毛孩子的鏟屎官家庭來說,空氣中的寵物異味和貓毛不僅影響生活質量,更關乎家人的健康。普通空氣凈化器雖然能夠提供基本的空氣凈化,但對于養貓家庭的特定需求,如去除寵…

捕獲 IPython 的輸出:深入探索 %%capture 命令的妙用

捕獲 IPython 的輸出:深入探索 %%capture 命令的妙用 在 IPython 的強大功能中,%%capture 魔術命令是一顆隱藏的寶石,它允許用戶捕獲執行單元格的輸出,無論是打印的文本、錯誤信息還是生成的圖像。這對于創建干凈的報告、自動化文…

使用 YOLOv8 實現人體姿態檢測

引言 在計算機視覺的各種應用中,人體姿態檢測是一項極具挑戰性的任務,它能夠幫助我們理解人體各部位的空間位置。本文將詳細介紹如何使用 YOLOv8 和 Python 實現一個人體姿態檢測系統,涵蓋模型加載、圖像預處理、姿態預測到結果可視化的全流…

回頭看,已過去6載

前言: 目前狀態比較不好,家里催著結婚,自己年紀慢慢變大,感覺很焦慮,時常不經意間感覺嘴角都是向下的(os:希望看到這段沒有影響到你的心情,我只是想記錄一下it這幾年以及目前的狀態…

k8s中控制器DaemonSet簡介及用法

一、簡介 在 Kubernetes 中,DaemonSet 是一種控制器類型,用于確保集群中的每個節點運行一個特定的 Pod 實例。通常情況下,DaemonSet 被用來在集群的每個節點上運行一個特定的系統服務或者應用程序副本,例如日志收集器(…

《基于 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) 的目的是為輸入序列中的每個詞元添加一個位置編碼,以保留序列…

PROSOFT/普羅索夫特 PROSOFT MVI56-PDPMV1模塊 控制器 處理器

PROSOFT MVI56-PDPMV1是一款功能豐富的工業自動化通信模塊,其參數、規格、尺寸、重量、系列、特征和作用如下: 參數與規格: 功能:作為PROSOFT MVI56-PDPMV1網絡掃描儀,在PROSOFT MVI56-PDPMV1設備和處理器數據之間傳輸…

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,…