QScintilla2.14.1 下载及跨平台(Windows+Linux)命令行编译安装全记录

作为一名专注于C/C++开发的程序员,QScintilla是我日常开发中常用的代码编辑组件——它是Scintilla编辑组件的Qt移植版本,支持语法高亮、代码折叠、自动补全等核心功能,常用于开发自定义代码编辑器或集成开发环境(IDE)。近期在搭建跨平台开发环境时,需要安装QScintilla2.14.1版本(稳定版,适配Qt6.10.2),分别在Windows(MSVC2022、MinGW)和Linux系统中完成编译安装,过程中踩了一些环境适配和编译的小坑,特此记录完整流程,方便自己后续回顾,也希望能帮到有同样需求的开发者。

本文涵盖 Windows(MSVC2022、MinGW)和 Linux(CentOS 7、Ubuntu 20.04 通用)两大平台,全程命令行操作,无图形界面依赖,步骤清晰可复现,新手也能跟着一步步完成安装,所有操作均基于 Qt6.10.2 版本适配。

一、前期准备:确认依赖环境(跨平台通用+平台专属)

QScintilla2.14.1 完美适配 Qt6.10.2,编译过程需依赖 Qt6.10.2 开发环境、对应编译器(Windows 为 MSVC2022/MinGW,Linux 为 gcc/g++)及基础编译工具,无其他额外依赖。在开始下载安装前,先配置好对应平台的环境,避免后续编译报错。

1. 通用准备:安装 Qt6.10.2 开发环境

无论 Windows 还是 Linux,均需先安装 Qt6.10.2,重点勾选对应编译器组件,步骤如下:

  1. 下载 Qt6.10.2 安装包:访问 Qt 官方归档下载页,根据平台选择对应安装包(Windows 选 qt-online-installer-windows-x64-online.exe,Linux 选 qt-online-installer-linux-x64-online.run)。
  2. 安装时重点勾选组件:
    1. Windows 平台:勾选「MSVC 2022 64-bit」「MinGW 11.2.0 64-bit」(对应两种编译器)、「Qt Core」「Qt Widgets」(QScintilla 核心依赖)。
    2. Linux 平台:勾选「GCC 64-bit」「Qt Core」「Qt Widgets」,无需额外勾选其他组件。
  3. 安装完成后,配置 Qt 环境变量(关键步骤):
    1. Windows 平台:将 Qt6.10.2 的 bin 目录(如 D:\Qt\6.10.2\msvc2022_64\bin、D:\Qt\6.10.2\mingw_64\bin)添加到系统环境变量 Path 中。
    2. Linux 平台:执行命令 echo "export PATH=/opt/Qt6.10.2/gcc_64/bin:\$PATH" >> ~/.bashrc,再执行 source ~/.bashrc 生效(路径根据实际安装位置调整)。
  4. 验证 Qt 环境:终端/命令提示符中执行 qmake -v,若能显示「Qt 6.10.2」版本信息,且对应编译器(MSVC2022/MinGW/GCC)识别正常,则环境配置成功。

2. 平台专属:安装编译器及基础工具

(1)Windows 平台(分 MSVC2022 和 MinGW 两种场景)

  • MSVC2022 编译器:安装 Visual Studio 2022,勾选「使用 C++ 的桌面开发」组件,安装完成后,打开「x64 Native Tools Command Prompt for VS 2022」(MSVC 专属命令行,后续编译需用此终端)。
  • MinGW 编译器:Qt6.10.2 安装时已自带 MinGW 11.2.0 64-bit,无需额外安装,直接使用 Qt 自带的「Qt 6.10.2 (MinGW 11.2.0 64-bit)」终端即可。
  • 基础工具:无需额外安装,Qt 和 Visual Studio 已自带 make、cmake 等工具(MinGW 用 mingw32-make,MSVC 用 nmake)。

(2)Linux 平台

安装 gcc、g++、make、cmake 基础编译工具,命令如下:

CentOS 系统执行以下命令:

yum install -y gcc g++ make cmake

Ubuntu 系统执行以下命令:

sudo apt update && sudo apt install -y gcc g++ make cmake

安装完成后,执行 gcc -v「g++ -v」,若能显示版本信息,则编译器安装成功。

二、QScintilla2.14.1 官方下载(跨平台通用)

QScintilla 的官方下载地址为 Riverbank Computing 官网,建议直接从官网下载源码包,避免第三方渠道的恶意文件,2.14.1 版本为当前稳定版,完美适配 Qt6.10.2,提供 tar.gz 和 zip 格式(Windows 推荐 zip,Linux 推荐 tar.gz)。

1. 下载步骤

  1. 打开官方下载页面:https://www.riverbankcomputing.com/software/qscintilla/download
  2. 下滑至「Source packages」板块,找到「QScintilla_src-2.14.1.tar.gz」(Linux 用)或「QScintilla_src-2.14.1.zip」(Windows 用),点击下载。
  3. 便捷下载方式:
    1. Windows:直接浏览器下载 zip 包,解压至自定义目录(如 D:\QScintilla_src-2.14.1)。
    2. Linux:使用 wget 命令在终端直接下载(复制官网对应文件的下载链接,替换下方链接):
wget https://www.riverbankcomputing.com/static/Downloads/QScintilla/2.14.1/QScintilla_src-2.14.1.tar.gz

2. 源码包解压(跨平台)

  • Windows 平台:右键解压 zip 包至目标目录(如 D:\QScintilla_src-2.14.1),解压后进入目录,核心编译目录为「Qt4Qt5」(适配 Qt6,目录名无影响,无需修改)。
  • Linux 平台:将 tar.gz 包解压到指定目录(本文以 /usr/local/src 为例,可根据自身需求修改),命令如下:
# 解压tar.gz包
tar -zxvf QScintilla_src-2.14.1.tar.gz -C /usr/local/src/

# 进入解压后的目录
cd /usr/local/src/QScintilla_src-2.14.1

解压后,目录下核心文件夹为 src(编译 C++ 库的核心目录)、designer(Qt Designer 插件,可选编译),无需关注其他文件夹。

三、跨平台命令行编译安装(核心步骤,Qt6.10.2 适配)

QScintilla2 的编译安装核心的是 “QScintilla_src-2.14.1/src”目录的编译(必做),可选编译”QScintilla_src-2.14.1/designer”(Qt Designer 插件),全程命令行操作,分 Windows(MSVC2022、MinGW)和 Linux 分别说明,步骤清晰可复现。

(一)Windows 平台编译安装(Qt6.10.2 + MSVC2022 / MinGW)

Windows 平台分两种编译器场景,均需使用对应终端(MSVC 用 VS 专属终端,MinGW 用 Qt 自带终端),步骤略有差异,分别说明。

场景1:Qt6.10.2 + MSVC2022 编译安装(推荐,适配 Windows 桌面开发)

  1. 打开终端:启动「x64 Native Tools Command Prompt for VS 2022」(开始菜单搜索即可),切换到 QScintilla 源码的 src 目录(如 D:\QScintilla_src-2.14.1\src),命令如下:
cd /d D:\QScintilla_src-2.14.1\src
  1. 生成 Makefile:执行 qmake 命令,指定 Qt6.10.2 的 MSVC 版本,自动生成适配 MSVC2022 的 Makefile:
qmake qscintilla.pro

说明:若系统中同时安装了 Qt5 和 Qt6,可使用 qmake6 明确指定 Qt6 编译,避免版本冲突。

  1. 编译:执行 nmake 命令(MSVC 专属编译命令),开始编译,耗时约 5-10 分钟(根据电脑配置调整):
nmake
  1. 安装:执行 nmake install 命令,将编译好的库文件、头文件安装到 Qt6.10.2 的对应目录(自动适配,无需手动指定路径):
nmake install

场景2:Qt6.10.2 + MinGW 编译安装(适配 MinGW 开发环境)

  1. 打开终端:启动「Qt 6.10.2 (MinGW 11.2.0 64-bit)」终端(开始菜单搜索即可),切换到 Qt4Qt5 目录(如 D:\QScintilla_src-2.14.1\src):
cd D:\QScintilla_src-2.14.1\src
  1. 生成 Makefile:执行 qmake 命令,自动适配 MinGW 编译器:
qmake qscintilla.pro
  1. 编译:执行 mingw32-make 命令(MinGW 专属编译命令),可添加 -j4 加快编译速度(4 线程,根据 CPU 核心数调整):
mingw32-make -j4
  1. 安装:执行 mingw32-make install 命令,完成安装:
mingw32-make install

Windows 平台可选:编译 Qt Designer 插件

若需要在 Qt Designer 中直接使用 QScintilla 组件,可编译 designer 插件,步骤如下(MSVC 和 MinGW 通用):

# 回到 QScintilla 源码根目录
cd ..

# 进入 Designer 插件编译目录
cd designer

# 生成 Makefile
qmake designer.pro

# 编译(MSVC 用 nmake,MinGW 用 mingw32-make -j4)
nmake  # MSVC 场景
# mingw32-make -j4  # MinGW 场景

# 安装
nmake install  # MSVC 场景
# mingw32-make install  # MinGW 场景

注意:若编译时报错「Unknown module(s) in QT: designer」,说明 Qt6.10.2 安装时未勾选「Qt Designer」组件,重新运行 Qt 安装包,补充勾选「Qt Designer」即可。

(二)Linux 平台编译安装(Qt6.10.2 + GCC)

Linux 平台编译步骤简洁,全程使用终端操作,适配 CentOS 7 和 Ubuntu 20.04,步骤如下:

第一步:编译核心 C++ 库(必做)

进入 src 目录,使用 qmake 生成 Makefile,再执行编译和安装,这是 QScintilla 正常使用的基础:

# 进入核心编译目录(若已在源码根目录,直接执行)
cd src

# 生成 Makefile(指定 Qt6 版本,若系统仅安装 Qt6,直接执行 qmake 即可)
qmake qscintilla.pro
# 若同时有 Qt5,执行 qmake6 qscintilla.pro 明确指定 Qt6

# 编译(-j4 表示使用4个线程编译,加快速度,可根据CPU核心数调整)
make -j4

# 安装(需 root 权限,CentOS 无需加 sudo,Ubuntu 需加 sudo)
sudo make install

关键说明:

  • 安装完成后,核心库文件会默认安装到 /usr/local/lib 目录,头文件会安装到 /usr/local/include 目录,系统可自动识别。
  • 若编译时报错「QtCore/qglobal.h: No such file or directory」,说明 Qt6 环境变量未配置成功,重新执行环境变量配置命令并生效即可。

第二步:可选编译——Qt Designer 插件

若需要在 Qt Designer 中直接使用 QScintilla 组件,可编译 Designer 插件,步骤如下:

# 回到 QScintilla 源码根目录
cd ..

# 进入 Designer 插件编译目录
cd designer

# 生成 Makefile
qmake designer.pro

# 编译
make -j4

# 安装
sudo make install

注意:若编译时报错「Unknown module(s) in QT: designer」,说明缺少 Qt Designer 相关依赖,CentOS 执行 yum install -y qt6-qttools-devel,Ubuntu 执行 sudo apt install -y qt6-tools-dev,安装后重新编译即可。

四、跨平台安装验证(Windows+Linux)

安装完成后,需验证是否安装成功,避免后续使用时出现问题,分平台说明验证方法,均基于 Qt6.10.2 项目验证。

1. Windows 平台验证(MSVC2022 / MinGW 通用)

(1)文件验证

检查 Qt6.10.2 安装目录下的库文件和头文件:

  • 头文件:进入 Qt6.10.2 安装目录 → include → Qsci,若存在 QsciScintilla.h 等头文件,说明头文件安装成功。
  • 库文件:MSVC 场景 → Qt6.10.2\msvc2022_64\lib,存在 qscintilla2.lib、qscintilla2d.lib(调试版);MinGW 场景 → Qt6.10.2\mingw_64\lib,存在 libqscintilla2.a、libqscintilla2d.a。

(2)项目验证(可选)

创建一个简单的 Qt6 Widgets 项目,在 .pro 文件中添加 QScintilla 依赖:

LIBS += -lqscintilla2
INCLUDEPATH += $$[QT_INSTALL_PREFIX]/include/Qsci

编写简单代码,创建 QsciScintilla 实例,若能正常编译运行,且能显示代码编辑界面,则说明安装完全成功。

2. Linux 平台验证

(1)文件验证

检查系统是否能找到 QScintilla 的库文件和头文件:

# 检查库文件
ls /usr/local/lib | grep libqscintilla2

# 检查头文件
ls /usr/local/include | grep Qsci

若能看到 libqscintilla2.so(动态库)和 Qsci 头文件目录,则说明 C++ 库安装成功。

(2)项目验证(可选)

创建一个简单的 Qt6 项目,在 .pro 文件中添加 QScintilla 依赖:

LIBS += -lqscintilla2
INCLUDEPATH += /usr/local/include/Qsci

编写简单代码,创建 QsciScintilla 实例,若能正常编译运行,且能显示代码编辑界面,则说明安装完全成功。

五、常见问题及解决方法(跨平台适配)

编译安装过程中,可能会遇到一些平台专属或通用报错,整理了几个常见问题及解决方法,帮大家避坑,均适配 Qt6.10.2 版本。

1. 报错:qmake: command not found / qmake6: command not found

原因:Qt6.10.2 环境变量未配置成功,或 qmake 命令未加入系统环境变量。

解决方法:重新配置环境变量(参考前期准备中的环境配置步骤),Windows 确认 Qt 的 bin 目录已加入 Path,Linux 重新执行 source ~/.bashrc 生效;若仍报错,使用 qmake 的绝对路径执行(如 D:\Qt\6.10.2\msvc2022_64\bin\qmake.exe)。

2. 报错:undefined reference to `QsciScintilla::QsciScintilla(QWidget*)’

原因:编译项目时未正确链接 QScintilla 库,或库文件路径未被系统识别。

解决方法: Windows 平台:在 .pro 文件中正确添加 LIBS 和 INCLUDEPATH,确保路径指向 Qt6.10.2 的 lib 和 include 目录。Linux 平台:在 .pro 文件中添加正确依赖,若库文件未被系统识别,执行 sudo ldconfig 更新系统库缓存。

3. Windows MSVC 场景:报错「fatal error C1083: 无法打开包括文件: “Qsci/qsciabstractapis.h”: No such file or directory」

原因:安装时未将头文件正确复制到 Qt 的 include 目录,或 nmake install 命令未执行成功。

解决方法:重新执行 nmake install 命令,确保安装步骤完整;若仍失败,手动将 QScintilla 源码中 Qt4Qt5\Qsci 目录下的所有头文件,复制到 Qt6.10.2\msvc2022_64\include\Qsci 目录。

4. Linux 场景:编译时报错「error: ‘nullptr’ was not declared in this scope」

原因:gcc 版本过低,不支持 C++11 特性(QScintilla2.14.1 依赖 C++11)。

解决方法:升级 gcc/g++ 版本(CentOS 可通过 yum install -y gcc-c++ 升级,Ubuntu 执行 sudo apt install -y gcc-9 g++-9),升级后重新编译。

5. 安装后,Qt Designer 中找不到 QScintilla 组件(跨平台通用)

原因:Designer 插件未编译成功,或插件路径未被 Qt Designer 识别。

解决方法: 重新编译 Designer 插件,确保 Qt Designer 依赖安装完整。手动复制插件:Windows 复制编译生成的 qscintillaplugin.dll 到 Qt6.10.2\msvc2022_64\plugins\designer;Linux 复制 libqscintillaplugin.so 到 /opt/Qt6.10.2/gcc_64/plugins/designer。

六、总结

本次详细记录了 QScintilla2.14.1 在 Windows(Qt6.10.2 + MSVC2022、MinGW)和 Linux(Qt6.10.2 + GCC)两大平台的命令行编译安装流程,核心是先配置好 Qt6.10.2 开发环境和对应编译器,再分步骤编译核心 C++ 库和可选的 Designer 插件,全程无图形界面依赖,适配日常 C/C++ 桌面开发需求。

跨平台安装的核心差异在于「编译器选择」和「终端使用」:Windows 需区分 MSVC2022 和 MinGW 对应的终端及编译命令,Linux 则直接使用 GCC 编译器即可;最容易踩坑的是 Qt 环境变量配置、编译器版本适配和插件路径识别问题,只要提前配置好环境,严格按照步骤执行,就能顺利完成安装。

安装完成后,QScintilla 可完美集成到 Qt6 项目中,用于开发自定义代码编辑器、IDE 等工具,后续会继续记录 QScintilla 的基础使用方法,比如语法高亮配置、代码自动补全设置等,感兴趣的小伙伴可以持续关注~

张贴在Qt

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注