资讯动态

从源码构建 QOwnNotes:qmake、QtCreator、Nix 与 CMake 四套构建路径全解析

发布时间:2026/10/13 6:12:59 来源:尧图企业网站定制
桌面应用【免费下载链接】QOwnNotesQOwnNotes is a plain-text file notepad and todo-list manager with Markdown support and Nextcloud / ownCloud integration.项目地址https://gitcode.com/gh_mirrors/qo/QOwnNotes点击查看免费下载QOwnNotes 是一款开源的纯文本 Markdown 笔记与待办事项管理器支持 Nextcloud / ownCloud 集成其完整构建流程记录在 webpage/src/installation/building.md本仓库另有 法语版、德语版 等多语言版本。本文围绕该文档展开结合仓库内的QOwnNotes.pro、CMakeLists.txt、justfile、devenv.nix、flake.nix、default.nix等构建配置系统讲解 Git 源码拉取、QtCreator 图形化编译、命令行 qmake/make 构建、Nix/Devenv 一键构建四套路径并给出开发模式DEV_MODE与常见问题的说明。读完本文你将能够根据自己的平台与工具链独立完成 QOwnNotes 的编译、运行与调试。一、构建前的准备获取源码与初始化子模块QOwnNotes 的源码托管在 Git 仓库中文档推荐直接拉取release分支获取最新发布版代码git clone https://github.com/pbek/QOwnNotes.git -b release cd QOwnNotes git submodule update --init第三步git submodule update --init不是可选项QOwnNotes 将一批第三方依赖以 git submodule 方式内嵌在源码树中包括src/libraries/qmarkdowntextedit— Markdown 编辑组件src/libraries/md4c— Markdown 解析库src/libraries/qhotkey、src/libraries/qtkeychain、src/libraries/qtcsv、src/libraries/qttoolbareditor、src/libraries/qkeysequencewidget、src/libraries/piwiktracker等辅助库。这些子模块的完整清单可在 .gitmodules 中查看若跳过初始化qmake/cmake阶段会因缺少这些库而失败。需要最新开发特性时也可改用main分支拉取README.md 中的示例还加了--depth1做浅克隆以加速。仓库根目录的 AGENTS.md 也明确指出src/libraries/下的库均为 git submodule。二、使用 QtCreator 图形化编译推荐用于调试如果目的是调试代码文档建议使用 QtCreator这是最直观的路径从 Qt 官网下载 Qt Creator开源版即可。必须额外安装qtwebsockets包QOwnNotes 的 WebSocket 服务器功能依赖该模块。以 Qt6 构建时需要它Qt5 构建同样需要。这一要求在项目文件中也有直接体现——src/QOwnNotes.pro 首行即声明了模块依赖QT core gui widgets sql svg network xml printsupport qml websockets concurrentQt6 下还会追加quicksrc/QOwnNotes.pro用于更多脚本选项。平台工具链选择在 Windows 上必须使用MinGW 64-bit工具链在 Linux 上绝大多数发行版的软件源中都直接提供了 QtCreator 包安装即可。打开项目文件src/QOwnNotes.pro在 QtCreator 中点击Build/Build Project QOwnNotes完成编译。关于 Qt 版本需要注意仓库的现状官方文档与 README.md 声明最低要求为 Qt 5.5 / Qt 6.0但仓库内的 docs/qt5-retirement-recommendation.md 显示项目正在推进 Qt 5 退役、Qt 6 成为主构建目标Nix 路径的默认产物也是 Qt6。因此新环境建议直接使用 Qt 6。三、命令行构建qmake make熟悉工具链的开发者可以在终端中直接构建。文档给出的完整流程如下cd src # 编译二进制翻译文件若希望获得英语以外的语言界面 lrelease QOwnNotes.pro # 准备构建过程并编译应用程序 qmake make几个关键点补充说明lrelease QOwnNotes.pro会读取 src/QOwnNotes.pro 中TRANSLATIONS变量列出的 60 多种语言的.ts源文件生成二进制.qm翻译文件跳过此步也能构建但界面只会是英语。qmake读取 src/QOwnNotes.pro 生成 Makefile随后make完成编译。该.pro文件同时负责引入src/libraries/下的第三方库qmarkdowntextedit.pri、botan.pri、sonnet-core.pri、singleapplication.pri、qhotkey.pri等见 src/QOwnNotes.pro打包图标、布局、示例笔记等资源images.qrc、texts.qrc、breeze-qownnotes.qrc、demonotes.qrc等见 src/QOwnNotes.pro在 Linux 下配置安装路径默认PREFIX/usrmake install会安装可执行文件、桌面文件、翻译文件与图标见 src/QOwnNotes.pro。构建产物名为QOwnNotesTARGET见 src/QOwnNotes.pro。开发模式构建DEV_MODE若你打算深入阅读和修改源码README.md 提供了一套专为开发设计的构建命令cd src qmake CONFIGDEV_MODE CONFIGdebug .. make -j4DEV_MODE会启用更高等级警告与预编译头文件在 src/QOwnNotes.pro 中DEV_MODE开启precompile_header并将pch.h作为预编译头在 src/QOwnNotes.pro 中DEV_MODE还会在 LinuxmacOS 除外启用-Werror -pedantic把警告升级为错误帮助尽早发现问题。CMake 路径同样支持DEV_MODE选项见下文。四、源码归档Source Archive下载如果不打算使用 Git也可以直接下载官方发布的源码归档。文档指出归档文件可通过 Releases 页面获取链接格式形如https://github.com/pbek/QOwnNotes/releases/download/v23.7.0/qownnotes-23.7.0.tar.xz即每个版本对应一个qownnotes-版本号.tar.xz压缩包。解压后得到完整源码树同样需要按上文方式准备 Qt 工具链后编译。五、使用 Nix 与 Devenv 构建可复现构建对于使用 Nix 包管理器尤其 NixOS 用户的开发者仓库提供了高度自动化的构建路径。前提是安装好 Nix 与 Devenv。按文档说明克隆仓库后依次执行# 打开一个包含所有所需工具的 shell devenv shell # 构建应用程序 just nix-build # 运行构建出的应用程序 just nix-run这套流程背后是仓库内一整套 Nix 基础设施devenv.nix 定义了开发环境启用 C 语言支持安装了just、cmake、botan3、libsecret、pkg-config以及来自 unstable nixpkgs 的qtbase、qtdeclarative、qtsvg、qtwebsockets、qmake、qttools等 Qt6 工具链enterShell会在进入 shell 时显示 Qt6/Qt5 版本并执行update-qmake-symlinks生成qmake6/qmake5符号链接供 QtCreator、CLion 使用见 devenv.nix。justfile 中的nix-build配方实际执行nix build .?submodules1#qownnotes-qt6justfilenix-run则运行./result/bin/QOwnNotes --session testjustfile。flake.nix 定义了多个构建目标qownnotes-qt6默认 Qt6 构建、qownnotes-qt6-qlitehtml启用 QLiteHtml 预览、qownnotes-qt5、qownnotes-qt5153、qownnotes-qt69以及 CMakeQt5 构建qownnotes-cmake-qt5支持x86_64-linux、aarch64-linux、x86_64-darwin、aarch64-darwin四种系统见 flake.nix。default.nix 是 Qt6 的 Nix 打包定义使用 CMake 构建开启QON_QT6_BUILD、BUILD_WITH_SYSTEM_BOTAN、BUILD_WITH_LIBGIT2、BUILD_WITH_ASPELL等选项依赖qtbase、qtdeclarative、qtsvg、qtwebsockets、botan3、libgit2、aspellLinux 下还加入libsecret与qtwayland见 default.nix并在安装阶段生成 bash/fish 的 shell 补全。除了文档提到的nix-build/nix-runjustfile 的nix分组还提供了大量实用配方例如配方作用just nix-build-qt5构建 Qt5 版本#qownnotes-qt5just nix-build-qt5153构建 Qt 5.15.3 版本just nix-build-qt69构建 Qt 6.9 版本just nix-build-qlitehtml构建带 QLiteHtml 支持的版本just nix-build-force强制重建 Qt6 版本--rebuildjust nix-build-system使用运行系统的 nixpkgs 而非锁定版本构建使 Qt 版本与桌面环境的 Qt 插件如 KDE Plasma 平台主题匹配justfilejust nix-build-run先用系统 nixpkgs 构建并直接运行可见在 Nix 环境中你不仅能一键构建还能自由切换 Qt 版本与可选特性。六、CMake 构建路径Qt6 的现代替代方案文档正文未展开但当前仓库已将 CMake 作为 Qt6 主构建系统。若你更习惯 CMake可参考 src/CMakeLists.txt 中的配置手动构建cmake -S src -B build-QOwnNotes -DQON_QT6_BUILDON -DCMAKE_BUILD_TYPEDebug cmake --build build-QOwnNotes --parallel $(nproc)构建选项一览见 src/CMakeLists.txt选项默认值含义QON_QT6_BUILDOFF使用 Qt6 构建ON时QT_VERSION_MAJOR6DEV_MODEOFF开发者模式Linux 下附加-Wall -Wextra -pedantic与-Werror见 src/CMakeLists.txtLANGUAGETOOL_ENABLEDON启用 LanguageTool 语法检查支持HARPER_ENABLEDON启用 Harper 语法检查器支持BUILD_WITH_LIBGIT2OFF使用系统 libgit2 库启用 Git 集成BUILD_WITH_ASPELLOFF使用系统 aspell 拼写检查库USE_QLITEHTML经由 default.nix 传入—启用 QLiteHtml 渲染仓库内的自动化流程均基于这套 CMake 配置例如justfile 的src-build配方使用 qmake 直接在源码目录外构建qmake --version mkdir -p build-QOwnNotes; cd build-QOwnNotes qmake CONFIGdebug USE_SYSTEM_BOTAN1 ../src/QOwnNotes.pro CONFIGDEV_MODE make -j$(nproc)justfile 的src-test配方通过 CMake 构建并运行单元测试cmake -S tests -B build-tests-QOwnNotes -DCMAKE_BUILD_TYPEDebug cmake --build build-tests-QOwnNotes --parallel $(nproc) build-tests-QOwnNotes/bin/tests -platform minimaldefault.nix 通过 CMake 标志完成 Qt6 打包并在 flake.nix 的checks.x86_64-linux中注册了基于 NixOS 测试框架的虚拟机测试qownnotes对应tests/vm/qownnotes.nix。七、构建后的运行与常见问题运行构建产物命令行构建产物位于src目录qmake 就地构建或build-QOwnNotes目录QtCreator /src-build配方直接执行./QOwnNotesmacOS 下为QOwnNotes.app/Contents/MacOS/QOwnNotes见 justfile。Nix 构建just nix-run会运行./result/bin/QOwnNotes --session test。常见问题排查qtwebsockets缺失构建报找不到 WebSocket 相关头文件时请安装 Qt 的qtwebsockets模块Qt6 与 Qt5 均需要。子模块未初始化出现缺少libraries/qmarkdowntextedit等目录的报错时回到仓库根目录执行git submodule update --init。Windows 工具链选择务必使用 MinGW 64-bit避免与 MSVC 的 ABI 及 Qt 构建不兼容。Qt5 与 Qt6 的差异Qt5 构建使用 C11src/QOwnNotes.proQt6 构建使用 C17/C20 标准src/QOwnNotes.pro、src/CMakeLists.txt且 Qt6 下会自动启用quick与USE_QLITEHTMLsrc/QOwnNotes.pro两者构建配置并不完全等价。八、参与源码贡献如果你希望为 QOwnNotes 贡献代码文档给出了两条明确指引Pull Request 请提交到main分支而不是release分支后者用于构建发布版。提交前请先阅读贡献指南webpage/src/contributing/code-contributions.md其中要求先为较大的改动开 issue 讨论、从独立分支发起 PR、并遵循仓库既有的提交信息风格。仓库根目录的 AGENTS.md 与 README.md 也包含构建、开发模式、代码规范等补充约定可作为贡献时的参考。总结QOwnNotes 提供了从简单到高度可复现的多条构建路径日常调试推荐 QtCreator src/QOwnNotes.pro熟悉命令行的开发者可用qmakemake追求环境可复现、一键构建的开发者可选用 Nix Devenv just而 Qt6 时代的现代构建则以 CMake 为基石。无论选择哪条路径都需先完成子模块初始化和qtwebsockets依赖安装并根据目标平台Windows 用 MinGW 64-bit与 Qt 版本Qt6 为当前主目标准备相应的工具链。结合仓库内的构建配置文件你可以按需开关拼写检查、Git 集成、QLiteHtml 预览等功能构建出完全符合自己需求的 QOwnNotes。赞分享桌面应用【免费下载链接】QOwnNotesQOwnNotes is a plain-text file notepad and todo-list manager with Markdown support and Nextcloud / ownCloud integration.项目地址https://gitcode.com/gh_mirrors/qo/QOwnNotes点击查看免费下载相关推荐QOwnNotes 从源码构建全攻略qmake、Qt Creator、CMake 与 Nix 四种路径详解QOwnNotes 从源码构建全攻略qmake、Qt Creator、CMake 与 Nix 四种路径详解 QOwnNotes 是一款以纯文本 Markdow桌面应用从源码构建 QOwnNotesQt Creator、命令行 qmake 与 Nix/Devenv 三种构建路径全指南从源码构建 QOwnNotesQt Creator、命令行 qmake 与 Nix/Devenv 三种构建路径全指南 本指南面向希望自行编译 QOwnNote桌面应用Sunshine 游戏串流主机 3 步搭建教程:从客厅串流到远程接入Sunshine 游戏串流主机 3 步搭建教程:从客厅串流到远程接入 游戏电脑摆在客厅,人却躺在沙发上,想用手机或电视玩——这就是 Sunshine 的用武之地音视频后端上一篇CANN ops-math 算子 aclnnInplaceBitwiseAndScalar 接口深度解析Tensor 与标量的原位按位与计算指南下一篇JTAppleCalendar技术知识管理建立结构化的知识体系创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑