1.1. C++ 学习资源#

1.1.1. Awesome C++#

  1. https://faraz.work/awesome-cpp/

  2. https://awesomecpp.com/

  3. https://cpp.libhunt.com/

  4. r-lyeh/single_file_libs

  5. https://en.cppreference.com/

1.1.2. IDE & Editor#

  1. CLion 非商业使用免费 ⭐⭐⭐⭐⭐

  2. Zed 开箱即用 ⭐⭐⭐⭐⭐

  3. Kate LSP 开箱即用 ⭐⭐⭐

  4. Code::Blocks 支持 SFML、wxWidgets 应用模板,wxSmith 插件 ⭐⭐⭐

  5. CodeLite 支持 wxWidgets 应用模板,wxCrafter 插件

  6. VSCodeVSCodium

  7. Helix LSP 开箱即用

1.1.3. Compiler#

三大 C++ 编译器:GCC、Clang、Visual C++。

  1. MSYS2 + Mingw-w64, 其它类似项目:

    1. https://mxe.cc/

    2. https://winlibs.com/

    3. skeeto/w64devkit

  2. Build Tools For Visual StudioVisual Studio Community

  3. Xcode command line tools

  4. Emscripten 使用 Clang 将 C/C++ 程序编译到 WASM 从而能在 Web 浏览器里运行

1.1.4. Debugger & Linter#

  1. DDD

  2. Valgrind

  3. Cppcheck

  4. Clang-tidy

  5. Clang-analyzer

  6. AddressSanitizer: Clang, GCC

1.1.5. Code Formatter#

  1. Clang-format

1.1.6. Building System & Package Manager#

  1. Xmake + Xrepo

  2. Meson + WrapDB, Muon

  3. Premake

  4. CMake + FetchContent / vcpkg / Conan / Hunter / CPM.cmake (复杂,但是当前事实标准)

  5. Build2

  6. Boost.Build (不支持生成 IDE 工程)

  7. GN (适用超大型项目,不自带 toolchain 定义)

  8. GYP (已被 gn 取代)

  9. Autotools (复杂,用于 Unix/Linux 项目)

  10. 封闭构建工具

    1. Bazel

    2. Buck2

    3. Please

    4. Pants

  11. Anaconda

  12. Spack

  13. MSYS2 Pacman

  14. UniGetUI: Winget, Scoop, Chocolatey

1.1.7. File Comparison#

  1. Meld

  2. Kdiff3

  3. Diffuse

  4. Kompare

1.1.8. Documentation Browser#

  1. Zeal

  2. DevDocs

1.1.9. Documentation Generator#

  1. Doxide

  2. Doxygen

  3. NaturalDocs

1.1.10. Project Template#

  1. ModernCppStarter

  2. cmake_template

  3. modern-cpp-template

  4. MiniCppStarter

1.1.11. Libraries#

  1. Graphics

    1. Raylib ⭐⭐⭐⭐⭐

    2. SFML ⭐⭐⭐⭐⭐

    3. Allegro ⭐⭐⭐

    4. Magnum

    5. Godot

    6. SDL

    7. GLFW

    8. ECS

      1. EnTT

      2. Flecs

  2. Unit Testing

    1. doctest

    2. Catch2

  3. Logging

    1. spdlog

    2. Nanolog

  4. Crash reporting

    1. Backward-cpp

    2. Cpptrace

    3. Crashpad

  5. HTTP

    1. cpp-httplib

    2. cpr

  6. JSON

    1. nlohmann-json

    2. simdjson

    3. RapidJSON

    4. JsonCpp

  7. Command line argument parser

    1. CLI11

    2. argparse

    3. args

    4. clipp

    5. Lyra

  8. UI

    1. CLI

      1. linenoise

      2. replxx

      3. cli

    2. TUI

      1. FTXUI ⭐⭐⭐⭐⭐

      2. FINAL CUT ⭐⭐⭐ 依赖 ncurses + Cygwin/MSYS

      3. imtui ⭐⭐⭐ 依赖 imgui,支持 pdcurses

      4. TermOx ⭐ 依赖 Cygwin/MSYS,C++20

      5. Turbo Vision

      6. Oof ⭐⭐⭐

      7. Indicators

      8. Tabulate

      9. Notcurses

      10. termbox2 只有基础 curses 功能

    3. GUI

      1. libui-ng

      2. FLTK

      3. Dear ImGui

      4. LVGL

      5. Slint

      6. Nuklear

      7. TGUI

      8. wxWidgets