文章目录
- 插件学习
- 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