QT安装和使用 qscintilla2 控件

由于需要研究Notepad++插件的编写(使用C#),其编辑器使用的是scintilla,但是由于对MFC的不熟悉,想另辟蹊径,通过学习QT和qscintilla2来学习scintilla的使用,折腾了一天,遇到很多问题,记录在此。

====================================================================================

本文环境为

qt-opensource-windows-x86-vs2010-4.8.6.exe

Visual StudioAdd-in 1.1.11 for Qt4

Visual Studio 2010

Win7 X64

====================================================================================

1.下载QScintilla

http://www.riverbankcomputing.co.uk/software/qscintilla/download

 

2.安装

打开Qt CommandPrompt

cd QScintilla的解压目录/Qt4Qt5

分别执行

qmake qscintilla.pro
nmake
nmake install

注意:

不要使用中文路径,nmake不识别

nmake是Vs2010的一部分,在C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\目录下,可以将其加入PATH环境变量

注意此处编译器版本需要与QT本身被编译的编译器一致,这里使用nmake,有地方使用MinGW,视环境不同选择不同的工具

另外需要注意本文都是X86环境,避免环境X86/X64不一致而出现各种意想不到的问题


 

3.安装QT designer的qscintillaplugin插件

打开Qt CommandPrompt

cd QScintilla的解压目录/designer-Qt4Qt5

分别执行

qmake designer.pro
nmake
nmake install

 ====================================================================================

4.出现的问题

由于qscintillaplugin依赖qscintilla,需要将qscintilla.dll复制到QT安装目录下的bin子目录中,

否则将会出现“Cannotload library qscintillaplugin.dll: The specified module cannot be found”(无法加载库…找不到指定的模块)的错误而无法加载插件(我就是在这里出错很久才找到解决办法http://stackoverflow.com/questions/1436628/qwt-plugin-for-qt-4-5)

 

如果遇到链接错误: unresolvedexternal symbol QsciScintilla::QsciScintilla(class QWidget *)…

则是因为没有加入lib,需要在Vs2010的“当前项目-属性-配置属性-链接-输入”中加入该控件的lib

QT安装和使用 qscintilla2 控件_第1张图片


如果遇到qscintilla2Cannot find or open the PDB file错误,能够正常生成exe,但是exe无法正常执行,出现秒退,则可能是下面的原因(网络上搜索的解决方案实测无用):

在安装控件时,由于默认编译的控件为release版本,所以QT工程必须定义成release

QT安装和使用 qscintilla2 控件_第2张图片

QT安装和使用 qscintilla2 控件_第3张图片

如果遇到errorLNK1123: failure during conversion to COFF: file invalid or corrup错误,需要关闭VS2010中增量编译开关

QT安装和使用 qscintilla2 控件_第4张图片

 

如果想使用debug版本,可以修改QScintilla-gpl-2.8.4\Qt4Qt5\qscintilla.pro文件,将其中的

CONFIG += qt warn_off release thread exceptions

改成

CONFIG += qt warn_off debug thread exceptions

,再重新按照前面的方式编译和复制即可

 

经试验,QTdesigner中的插件不能使用debug版,否则加载插件显示不兼容的错误,这样的话,如果前面使用的是debug版本,在此时无法直接打开包含该控件的ui文件,会弹出错误,如下,所有最好都使用Release版本

QT安装和使用 qscintilla2 控件_第5张图片

你可能感兴趣的:(QT)