文章目錄
- 插件學習
- 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