您的位置:首页 > 编程语言 > Qt开发

QT安装和使用 qscintilla2 控件

2014-10-07 17:04 323 查看
由于需要研究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



如果遇到qscintilla2Cannot find or open the PDB file错误,能够正常生成exe,但是exe无法正常执行,出现秒退,则可能是下面的原因(网络上搜索的解决方案实测无用):
在安装控件时,由于默认编译的控件为release版本,所以QT工程必须定义成release





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



 
如果想使用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版本
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: