首页
/ CherryTree 项目从源代码构建指南

CherryTree 项目从源代码构建指南

2025-07-09 05:21:34作者:齐冠琰

前言

CherryTree 是一款功能强大的分层笔记应用程序,支持富文本、语法高亮、图片嵌入、代码执行等多种功能。本文将详细介绍如何在不同操作系统环境下从源代码构建 CherryTree。

构建前的准备工作

在开始构建之前,请确保您的系统满足以下基本要求:

  1. 已安装 Git 版本控制系统
  2. 具备基本的命令行操作知识
  3. 系统有足够的存储空间(建议至少 1GB 可用空间)

通用构建方法

使用 Visual Studio Code 进行构建和调试

对于开发者而言,使用 VS Code 可以提供更好的开发体验:

  1. 安装 VS Code 和 C/C++ 扩展
  2. 打开项目目录
  3. 使用快捷键进行构建和调试:
    • 构建:Ctrl+Shift+B
    • 调试:F5

使用容器化开发环境

VS Code 支持通过容器提供完整的开发环境,这种方法适用于所有支持 Docker 的操作系统:

  1. 确保系统满足 Docker 运行要求
  2. 在 VS Code 中打开项目
  3. 配置 .devcontainer/devcontainer.json 文件
  4. 使用 "Remote-Containers: Open Folder in Container..." 命令启动容器环境

特殊构建选项

CherryTree 提供了一些特殊的构建选项:

  1. 使用捆绑的 spdlog 和 fmt 库:

    ./build.sh bundledspdfmt
    
  2. 创建 AppImage 包:

    ./build.sh appimage
    
  3. 生成崩溃报告的回溯信息:

    ./build.sh debug
    gdb ./build/cherrytree
    (gdb) r
    

    在重现崩溃后:

    (gdb) bt
    

各平台具体构建指南

Debian/Ubuntu/Linux Mint 系统

依赖安装

sudo apt install build-essential cmake ninja-build libgtkmm-3.0-dev libgtksourceview-4-dev libxml++2.6-dev libsqlite3-dev gettext libgspell-1-dev libcurl4-openssl-dev libuchardet-dev libfribidi-dev libvte-2.91-dev libfmt-dev libspdlog-dev file libxml2-utils

对于 LaTeX 支持(可选):

sudo apt install texlive-latex-base dvipng

构建步骤

git clone https://github.com/giuspen/cherrytree.git
cd cherrytree
git submodule update --init
./build.sh
./build/cherrytree

创建 Debian 包

./build.sh deb

Arch Linux/Manjaro 系统

依赖安装

sudo pacman -S gtkmm3 gtksourceview4 libxml++2.6 vte3 gspell uchardet fmt spdlog

构建步骤

与 Debian 系统相同。

Fedora 系统

依赖安装

sudo dnf install cmake ninja-build gcc-c++ gtkmm30-devel gtksourceview4-devel gspell-devel libxml++-devel libcurl-devel uchardet-devel fmt-devel spdlog-devel vte291-devel sqlite-devel

对于 LaTeX 支持(可选):

sudo dnf install texlive-scheme-basic texlive-dvipng

创建 RPM 包

sudo dnf install rpm-build
./build.sh rpm

OpenSUSE 系统

依赖安装

sudo zypper install cmake ninja gcc-c++ gtkmm3-devel gtksourceview4-devel gspell-devel libxml++26-devel sqlite3-devel libcurl-devel libuchardet-devel fmt-devel spdlog-devel vte-devel

创建 RPM 包

sudo zypper install rpm-build
./build.sh rpm

macOS 系统

依赖安装

brew install cmake ninja pkg-config python adwaita-icon-theme fmt gspell gtkmm3 gtksourceview4 libxml++ spdlog uchardet fribidi curl vte3
brew link icu4c --force
brew install --cask basictex
sudo tlmgr update --self
sudo tlmgr install dvipng

构建步骤

git clone https://github.com/giuspen/cherrytree.git
cd cherrytree
git submodule update --init
export PKG_CONFIG_PATH="/usr/local/opt/icu4c/lib/pkgconfig"
./build.sh
./build/cherrytree

Windows 系统

准备工作

  1. 安装 MSYS2(64位版本)
  2. 启动 'MSYS2 UCRT64' 终端
  3. 更新系统:
    pacman -Syuu
    

依赖安装

# 工具链
pacman -S --needed --noconfirm mingw-w64-ucrt-x86_64-toolchain mingw-w64-ucrt-x86_64-cmake mingw-w64-ucrt-x86_64-ninja

# 主要依赖
pacman -S --needed --noconfirm mingw-w64-ucrt-x86_64-gtkmm3 mingw-w64-ucrt-x86_64-gtksourceview4 mingw-w64-ucrt-x86_64-libxml++2.6 mingw-w64-ucrt-x86_64-sqlite3

# 其他依赖
pacman -S --needed --noconfirm mingw-w64-ucrt-x86_64-gspell mingw-w64-ucrt-x86_64-curl mingw-w64-ucrt-x86_64-uchardet mingw-w64-ucrt-x86_64-fribidi mingw-w64-ucrt-x86_64-fmt mingw-w64-ucrt-x86_64-spdlog

# 可选组件
pacman -S --needed --noconfirm mingw-w64-ucrt-x86_64-texlive-core mingw-w64-ucrt-x86_64-gettext git nano

配置 Windows 主题

mkdir /etc/gtk-3.0
nano /etc/gtk-3.0/settings.ini

添加以下内容:

[Settings]
gtk-theme-name=win32

构建步骤

git clone https://github.com/giuspen/cherrytree.git
cd cherrytree
git submodule update --init
./build.sh
./build/cherrytree.exe

常见问题解决

  1. 构建失败

    • 确保使用正确的终端(如 Windows 上的 64 位终端)
    • 删除 cherrytree/build 文件夹后重新运行 build.sh
  2. 程序无法启动

    • 在 MSYS2 UCRT64 终端中运行
    • 或将新构建的可执行文件替换到官方便携版文件夹中
  3. 依赖问题

    • 确保所有依赖项已正确安装
    • 检查系统是否满足最低版本要求

结语

通过本文的详细指南,您应该能够在各种主流操作系统上成功构建 CherryTree。如果在构建过程中遇到任何问题,建议查阅相关文档或社区支持资源。构建自己的 CherryTree 版本不仅能确保您获得最新功能,还能根据需要进行自定义修改。