CherryTree 项目从源代码构建指南
2025-07-09 05:21:34作者:齐冠琰
前言
CherryTree 是一款功能强大的分层笔记应用程序,支持富文本、语法高亮、图片嵌入、代码执行等多种功能。本文将详细介绍如何在不同操作系统环境下从源代码构建 CherryTree。
构建前的准备工作
在开始构建之前,请确保您的系统满足以下基本要求:
- 已安装 Git 版本控制系统
- 具备基本的命令行操作知识
- 系统有足够的存储空间(建议至少 1GB 可用空间)
通用构建方法
使用 Visual Studio Code 进行构建和调试
对于开发者而言,使用 VS Code 可以提供更好的开发体验:
- 安装 VS Code 和 C/C++ 扩展
- 打开项目目录
- 使用快捷键进行构建和调试:
- 构建:Ctrl+Shift+B
- 调试:F5
使用容器化开发环境
VS Code 支持通过容器提供完整的开发环境,这种方法适用于所有支持 Docker 的操作系统:
- 确保系统满足 Docker 运行要求
- 在 VS Code 中打开项目
- 配置
.devcontainer/devcontainer.json
文件 - 使用 "Remote-Containers: Open Folder in Container..." 命令启动容器环境
特殊构建选项
CherryTree 提供了一些特殊的构建选项:
-
使用捆绑的 spdlog 和 fmt 库:
./build.sh bundledspdfmt
-
创建 AppImage 包:
./build.sh appimage
-
生成崩溃报告的回溯信息:
./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 系统
准备工作
- 安装 MSYS2(64位版本)
- 启动 'MSYS2 UCRT64' 终端
- 更新系统:
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
常见问题解决
-
构建失败:
- 确保使用正确的终端(如 Windows 上的 64 位终端)
- 删除
cherrytree/build
文件夹后重新运行build.sh
-
程序无法启动:
- 在 MSYS2 UCRT64 终端中运行
- 或将新构建的可执行文件替换到官方便携版文件夹中
-
依赖问题:
- 确保所有依赖项已正确安装
- 检查系统是否满足最低版本要求
结语
通过本文的详细指南,您应该能够在各种主流操作系统上成功构建 CherryTree。如果在构建过程中遇到任何问题,建议查阅相关文档或社区支持资源。构建自己的 CherryTree 版本不仅能确保您获得最新功能,还能根据需要进行自定义修改。