news 2026/9/16 16:12:08

macOS 部署 notepad--:十分钟编译跑通

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
macOS 部署 notepad--:十分钟编译跑通

macOS 部署 notepad--:十分钟编译跑通

【免费下载链接】notepad--一个支持windows/linux/mac的文本编辑器,目标是做中国人自己的编辑器,来自中国。项目地址: https://gitcode.com/GitHub_Trending/no/notepad--

终端里贴了第三段Could NOT find Qt5的报错,你开始怀疑是不是 Qt 版本又抽风了。其实 notepad-- 在 macOS 上的安装没这么玄学——这个支持多标签编辑、语法高亮和文件对比的文本编辑器,M 芯片和 Intel 走的是同一条 CMake 路径,配置对了十分钟就能出窗口。下面是最短走通路径,全程约 10 分钟。

环境体检

先确认你的机器落在支持范围内,缺什么补什么,避免编译到一半才回头装依赖。

检查项最低要求推荐值不满足时的替代做法
macOS 版本10.14+12 及以上老系统直接用预编译发布版,别硬编译
CPU 架构Intel 或 ARM(M 系列)M 系列原生编译M 芯片上若 Homebrew 是 Intel 版会编出 x86_64 产物,见排障表
内存4 GB8 GB编译时把并发降为-j1
磁盘可用5 GB(Qt5 + 源码 + 构建产物)10 GB删旧 build 目录释放
Qt 版本5.15,必须是 Qt5Homebrewqt@5Qt 6 不可用,CMakeLists.txt 里写死了find_package(Qt5 ...)
CMake3.16+最新 3.xcmake_minimum_required(VERSION 3.16)低于此直接报错

⚠️ 锁定 Qt 5.15 的原因:工程只依赖 Qt5 的 Widgets/PrintSupport/XmlPatterns 组件,Qt 6 的模块拆分会让上面这行find_package直接失败,而不是报个模糊的链接错误。

一键检测当前环境,五秒出结果:

sw_vers && uname -m cmake --version ls "$(brew --prefix qt@5)/lib/cmake/Qt5/Qt5Config.cmake" 2>/dev/null && echo "Qt5 OK" || echo "Qt5 缺失" sysctl -n hw.memsize hw.ncpu df -h . | tail -1

编译安装 notepad-- 最短路径

这条主线只走一遍,五个步骤,每步都有验证点。

两个要点:QScintilla 语法高亮库和 helloworld 插件都被根 CMakeLists 用add_subdirectory拉进来一起编,所以不需要单独进入src/qscint/跑 qmake;macOS 产物是裸二进制而不是 .app 包,直接在终端运行即可。

步骤 1:装 Qt5 和构建工具——这一步补齐 CMake 配置时会被find_package引用的全部依赖。

brew install qt@5 cmake ninja

验证点:运行ls "$(brew --prefix qt@5)/lib/cmake/Qt5/Qt5Config.cmake",看到该文件存在即通过。

步骤 2:拿到源码——克隆仓库并进入根目录。

git clone https://gitcode.com/GitHub_Trending/no/notepad-- cd notepad--

验证点:运行ls CMakeLists.txt src/qscint/CMakeLists.txt,两个文件都列出即通过。

步骤 3:CMake 配置——这一步把 Qt5 路径和构建类型写进 CMakeCache,Release 类型决定静态库最终命名,后面别改。

cmake -B build \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_PREFIX_PATH="$(brew --prefix qt@5)"

验证点:运行grep CMAKE_BUILD_TYPE build/CMakeCache.txt,看到Release且结尾没有Qt5 NOT FOUND即通过。

如果你在 M 芯片机器上编完发现产物是 x86_64 → 说明 Homebrew 是 Intel 版,跳去排障表「产物显示 x86_64」那一行。

步骤 4:并行编译——这一步耗时最长,M 芯片上 QScintilla 的 lexers 目录是主要开销。

cmake --build build -j$(sysctl -n hw.ncpu)

验证点:运行ls -lh build/NotePad--,看到可执行文件、且编译结尾是Linking CXX executable NotePad--即通过。

步骤 5:跑起来——第一次直接终端启动,有报错也能当场看到。

./build/NotePad--

验证点:运行./build/NotePad--,看到窗口标题 Notepad-- 以及 文件/编辑/查找/视图 菜单栏即通过。

![M 芯片 Mac 下 notepad-- 编译完成后的编辑界面,含目录列表与多标签页](https://raw.gitcode.com/GitHub_Trending/no/notepad--/raw/4510896f716e71db9f4b25ed8559b9c39a4f23d4/pngshow/macos/2023-10-05 18.04.17.png?utm_source=gitcode_repo_files)

配置与调优

锁定 Release:qscint 库名会随构建类型变化

解决「先编过 Debug 再切 Release,链接报找不到 qscint」的问题。QScintilla 静态库在 Release 下叫qmyedit_qt5,Debug 下叫qmyedit_qt5d(见 src/qscint/CMakeLists.txt),两者不可混用,切换构建类型务必先删 build 目录。

字段默认值建议值作用
CMAKE_BUILD_TYPE空(按 Debug 处理)Release决定 qscint 静态库命名与优化级别
CMAKE_PREFIX_PATH未设置$(brew --prefix qt@5)告诉 CMake 去哪找 Qt5Config.cmake

插件开关 PLUGIN_EN

解决「不想让主程序加载插件库」的问题。默认不传该变量时插件加载路径开启;传on会定义NO_PLUGIN=1关掉它(注意逻辑是反直觉的,见根 CMakeLists.txt 第 23-27 行)。

字段默认值建议值作用
PLUGIN_EN未定义(插件启用)保持不传on则添加-DNO_PLUGIN=1,禁用插件加载

中文编码配置

解决「打开 GBK 老文件显示乱码」的问题。编码在状态栏右侧下拉框手动切换即可(支持 UTF-8、GB18030 等),选错编码不会崩溃,只是显示乱码;选对后重新保存就修好了。编码判断与转换逻辑在 src/Encode.cpp,窗口布局、查找历史等设置由 QSettings 以 INI 格式按用户作用域落盘(src/cceditor/ccnotepad.cpp),不用手动维护配置文件路径。

配色主题在 src/themes/ 下有 16 套现成目录(Monokai、Bespin、Deep Black 等),每套按语言提供 .ini,在「设置」里切换,改配色不用动代码。

![macOS 上 notepad-- 状态栏编码下拉框与查找结果面板,显示 UTF-8 与 xml 高亮](https://raw.gitcode.com/GitHub_Trending/no/notepad--/raw/4510896f716e71db9f4b25ed8559b9c39a4f23d4/pngshow/macos/2023-12-23 14.31.45.png?utm_source=gitcode_repo_files)

排障速查

只收高频问题,一行一个修法。

你看到的现象最可能的原因一条修复命令或配置
配置时报Qt5 NOT FOUND没传 Qt5 路径,CMake 找不到 Qt5Config.cmake配置命令加-DCMAKE_PREFIX_PATH="$(brew --prefix qt@5)"
链接阶段报找不到qmyedit_qt5d或 qscint 符号Debug 与 Release 构建类型混用rm -rf build后按步骤 3 重新以Release配置
M 芯片上file build/NotePad--显示 x86_64Homebrew 是 Intel 版,qt@5 也是 x86 二进制换 arm64 版 brew 重装qt@5,删 build 重编
GBK 文件中文乱码编码按 UTF-8 打开了状态栏下拉框手动选 GBK/GB18030 再保存
编好但启动报 dylib 加载失败qt@5 依赖库缺失或路径断裂brew reinstall qt@5后重跑./build/NotePad--

以上都没解决 → 先在仓库 Issues 搜索相同现象,再提交新 issue 并附完整终端输出。

适用边界

这条路径产出的是 macOS 本地裸二进制,不是 .app 安装包:仓库里的 NSIS 安装器配置 cmake/nsis_package_config.cmake 只服务于 Windows,deb 打包 cmake/deb_package_config.cmake 只服务于 Linux。不想编译就直接取项目的预编译发布版;要无图形界面的服务器场景,这个 GUI 编辑器不适用。

git pull && cmake --build build -j$(sysctl -n hw.ncpu)

遇到问题先在仓库 Issues 搜索相同现象,没有再提交,附sw_versuname -m和完整报错。

【免费下载链接】notepad--一个支持windows/linux/mac的文本编辑器,目标是做中国人自己的编辑器,来自中国。项目地址: https://gitcode.com/GitHub_Trending/no/notepad--

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/16 16:11:44

Chatbox接入国内大模型只需改两行配置:API Key与Base URL详解

最近有朋友问我:Chatbox 下载装好了,API Key 也填了,为什么发消息还是报错?还有人问,Chatbox 程序升级之后,默认模型怎么又变回去了,每次都要手动改半天。说实话,这类问题十有八九不…

作者头像 李华
网站建设 2026/9/16 16:11:19

基于Python和Django的高考志愿填报系统设计与实现

简介:这套基于PythonDjango的高考志愿填报系统,是面向计算机相关专业学生的高分毕业设计资料包,适用于毕业设计、课程设计或项目初期立项演示。资源包含完整的系统源码、数据库脚本及详细设计文档,覆盖考生信息管理、志愿智能推荐…

作者头像 李华
网站建设 2026/9/16 16:10:49

cnsenti轻量中文情感分析:词典规则实现毫秒级极性打分

简介:本资源是基于大连理工大学情感词汇本体库构建的中文情感分析工具包,面向自然语言处理初学者、科研人员及需要快速实现文本情绪识别的开发者。它支持正负情感倾向判断与细粒度情绪分类,适用于舆情分析、用户评论挖掘、教育反馈评估等典型…

作者头像 李华
网站建设 2026/9/16 16:10:43

NFT数字藏品交易平台搭建:从链上确权到订单撮合的完整实现

简介:一套可运营的元宇宙数字藏品艺术品交易平台完整源码,旨在帮助站长、创业者及PHP开发者快速搭建数字藏品发布与交易网站;平台前端采用Vue框架,后端基于ThinkPHP,覆盖藏品展示、发布、下单交易等常用流程。部署环境…

作者头像 李华
网站建设 2026/9/16 16:09:47

深入解析.NET运行时加载中的wks与svr模式差异

1. 深入解析CorBindToRuntimeEx中的"wks"参数作为一名长期从事.NET与COM互操作开发的工程师,我经常需要处理各种运行时加载问题。今天要讨论的这个"wks"参数,看起来简单却暗藏玄机。记得我刚接触这个参数时,曾因为忽略它…

作者头像 李华