本文是编译该 QScintilla 组件库供 QtCreater 开发 C++ 桌面软件 流程记录

一、编译环境

  • 系统: Windows 10
  • Qt:Qt 5.14.2
  • 编译套件:MinGW 32
  • Qscintilla:QScintilla_src-2.13.1

二、下载链接

网站链接:https://www.riverbankcomputing.com/software/qscintilla/download.
在这里插入图片描述
下载最新 *.zip 版即可

三、目录说明

解压后目录截图:
在这里插入图片描述

文件夹名 内容简介
designer 编译QDesigner插件源代码目录
doc Web帮助文档、Scintilla库的说明、安装帮助说明
example 官方提供的例子
Python 编译Python的whl安装包的源代码(不需要自己编译,直接从PyPI下载就行)
scintilla 依赖的scintilla源代码目录
src 封装好的QScintilla的源代码
ChangeLog 更新日志
LICENSE 使用许可证
NEWS 关于这个库的新闻

四、编译&安装库

建议 参考官方 doc/README.doc 里面是完整的编译说明(就在下载doc文件夹内)

一、编译

注意 :此处我选择编译的 动态 库是 Debug 版本 【按自己需要编译 Release 版】【静态库看参考官方 doc/README.doc

可以看下 Qscintilla.pro 中的编译配置 【可不看这pro文件这部分】

!win32:VERSION = 15.1.1

TEMPLATE = lib
CONFIG += qt warn_off thread exceptions hide_symbols

CONFIG(debug, debug|release) {
    mac: {
        TARGET = qscintilla2_qt$${QT_MAJOR_VERSION}_debug
    } else {
        win32: {
            TARGET = qscintilla2_qt$${QT_MAJOR_VERSION}d
        } else {
            TARGET = qscintilla2_qt$${QT_MAJOR_VERSION}
        }
    }
} else {
    TARGET = qscintilla2_qt$${QT_MAJOR_VERSION}
}
变量名和值 意义
TEMPLATE = lib 编译的结果是一个动态库
win32 Windows平台
$${QT_MAJOR_VERSION} 5
TARGET = qscintilla2_qt$${QT_MAJOR_VERSION}d 编译目标名为:qscintilla2_qt5d
CONFIG(debug, debug l release) { …win32: {TARGET = qscintilla2_qt$ {QT_MAJOR_VERSION}d} else {TARGET = qscintilla2_qt$${QT_MAJOR_VERSION}}} 在Windows平台下,如果项目配置是 debug 模式编译目标择取名: qscintilla2_qt5d,是release模式则是:qscintilla2_qt5
  • 1、使用 QtCreater 打开 src/qscintilla.pro 工程文件
  • 2、点击 编译运行 按钮都可编译在这里插入图片描述
  • 3、查看编译结果 (里面有 两个编译重要文件)
  • qscintilla2_qt5d.dll qscintilla2_qt5d.a在这里插入图片描述

二、安装

看懂 Qscintilla.pro安装选项

target.path = $$[QT_INSTALL_LIBS]  #1、把编译的动态库放在Qt的lib 、bin路径下
INSTALLS += target

header.path = $$[QT_INSTALL_HEADERS] #2、把./src/Qsci 放在Qt的include header路径下
header.files = Qsci
INSTALLS += header

trans.path = $$[QT_INSTALL_TRANSLATIONS] #3、把./src/qscintilla_*.qm 下的多语言文件放在 translation文件夹下
trans.files = qscintilla_*.qm
INSTALLS += trans

qsci.path = $$[QT_INSTALL_DATA] #这个和python Api有关,可不管
qsci.files = ../qsci
INSTALLS += qsci

features.path = $$[QT_HOST_DATA]/mkspecs/features #4、把./src/features该库的特性文件prf放在Qt的mkspecs/features 路径下
CONFIG(staticlib) {
    features.files = $$PWD/features_staticlib/qscintilla2.prf #静态库不管,我们用动态库
} else {
    features.files = $$PWD/features/qscintilla2.prf
}
INSTALLS += features

Qt 的路径是指 编译Qscintilla库的 编译套件目录【我的是用的MinGW-32】

在这里插入图片描述

  • 1、把编译的动态库放在Qt的lib 、bin路径下
  • qscintilla2_qt5d.dll 位置在这里插入图片描述
  • qscintilla2_qt5d.a 位置在这里插入图片描述
  • 2、把库的放在Qt的include header路径下在这里插入图片描述- 3、把依赖的多语言文件放在 translation文件夹下 在这里插入图片描述
  • 4、把该库的特性文件prf放在Qt的mkspecs/features 路径下 在这里插入图片描述

五、运行实例

使用 example 文件夹的 application.pro 项目

在这里插入图片描述

  • 1、加载项目后【使用当前编译 Qscintilla 库的编译套件】-点击 运行 按钮 在这里插入图片描述
  • 2、运行结果 【运行无误在这里插入图片描述
    如果需要使用QScintilla Designer 插件:

Qt编译 QScintilla Designer 插件(C++版) 过程记录: https://blog.csdn.net/qq_43680827/article/details/122617468.

  • 觉得有帮助的话,点个赞再走啦、谢谢啦
    在这里插入图片描述
Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐