QScintilla下载与编译
大家好,我又回来了~~
之前和大家分享的是在c/c++中通过python c api嵌入python解释器,主体都是和python相关的。其实最终要和大家分享的是如何做一个python编辑器。比如支持语法高亮、关键字自动补全,显示行号等功能。所以这次和大家一起学习的是一个Qt下的源代码编辑器控件。相信有的同志已经猜出来了。对,就是它。
Scintilla是以C++编写的自由开源程序库,它提供文本编辑器程序的各种功能,特别是适用于源代码编辑器的高级功能。
而QScintilla则是Scintilla 在Qt上的移植。QScintilla是Scintilla编辑组件Qt的一个端口。 除了标准文本编辑组件中的功能外,QScintilla还包含在编辑和调试源代码时特别有用的功能。 这些包括对语法样式,错误指示器,代码完成和调用提示的支持。 选择边距可以包含调试器中用于指示断点和当前行的标记。 样式选择比许多编辑器更开放,允许使用比例字体,粗体和斜体,多种前景色和背景色以及多种字体。
先贴一个源码包下载地址:
https://riverbankcomputing.com/software/qscintilla/download
我的平台是ubuntu 14.04,Qt5.
下面是下载解压好的文件夹列表:

红色数字1是移植后的Qt源码工程,编译通过后会生成对应的连接库。
红色数字2是在Qt下的一个编辑器的小Demo,之后会以example-Qt4Qt5为例演示。
第一部分:编译源码生成共享库
接下来用Qt Creator 打开1,生成ubuntu下的共享库。可能是我虚拟机不大行,编译了将近5分钟~ ~ ~打开后可以简单看看,那么多源文件,辛苦作者了,向他们致敬!致敬这种开源精神!由于目标文件是生成共享库,所以编译完成后Qt Creator 会弹出下面的弹窗:

没有可执行程序,直接点Cancel按钮取消即可。Qt编译后的文件夹下有很多中间文件以及其他文件,对于我们来讲,有用的则是图中生成的共享库。接下来是example-Qt4Qt5的跑通。

第二部分:链接共享库,运行例子
有了共享库后,我们链接动态库,运行例子。我的是Qt5 的版本,无法直接运行,需要做些改动。
①链接共享库库
需要包含库的头文件,链接共享库。

链接共享库是数字3部分的代码。Lib文件夹的目录如下图。

②修改.pro编译工程
由于Qt5对Qt4的不兼容,需要添加以下语句。
greaterThan(QT_MAJOR_VERSION,4):QT+=widgets
当程序中需要添加widgets模块,
这行代码的意思是,如果QT主版本大于4(也就是说当前使用的是Qt5或者更高版本),则需要添加widgets模块。
也可以直接用“QT+=widgets”,但这样可以保持与QT4的兼容性

由于代码中使用了c++11标准,我们需要在在工程中配置C++11。
否则会报以下的错误!这是 C++11中的新语法!

O的K,现在就不会有错误了,全力运行!!叮咚~~
成功结果如下!
一个简易的文本编辑器就诞生了~ 耶!!!
如果大家觉得还阔以,欢迎大家关注公众号。
微信扫一扫
关注该公众号
QScintilla下载与编译的更多相关文章
- Chrome代码下载及编译
2-3年前在做客户端开发时,看过CHROME的一部分代码,主要是BASE库相关的.其项目之大,编译时间之长给我留下了深刻的印象. 3年后的最近,想着再读一下其他部分的代码,所以就对其纠结的下载和编译过 ...
- Android学习系列(38)--Android源码下载和编译
前面多篇文章介绍到如何下载和编译Android或者CM源码,不过一直都是放在<拓展系列>里.随着学习的深入,android源码是非常有参考和学习价值,强烈推荐大家都去下载,编译,学习,所以 ...
- 深入浅出-Android系统移植与平台开发(一)- Android4.0系统的下载与编译
作者:唐老师,华清远见嵌入式学院讲师. 一.Android4.0系统的下载与编译 Android系统的下载与编译,Google的官方网站上已经给出了详细的说明,请参照Android的官方网址: htt ...
- Ubuntu10.04下载并编译Android4.3源代码
注:转载或引用请标明出处 http://blog.csdn.net/luzhenrong45/article/details/9719433 去年用Ubuntu10.10成功下载并编译Andro ...
- 【转】Android 4.3源码的下载和编译环境的安装及编译
原文网址:http://jingyan.baidu.com/article/c85b7a641200e0003bac95a3.html 告诉windows用户一个不好的消息,windows环境下没法 ...
- 【转】在Ubuntu上下载、编译和安装Android最新源代码
原文网址:http://blog.csdn.net/luoshengyang/article/details/6559955 看完了前面说的几本书之后,对Linux Kernel和Android有一定 ...
- Mac下载并编译Google安卓AOSP项目代码
Mac下载并编译Google安卓AOSP项目代码 参考 https://source.android.com/source/index.html 这两天用Mac下载安卓AOSP源码,且把遇到的问题记下 ...
- 在Ubuntu上下载、编译和安装Android最新源码
看完了前面说的几本书之后,对Linux Kernel和Android有一定的认识了,是不是心里蠢蠢欲动,想小试牛刀自己编译一把Android源码了呢?一直习惯使用Windows系统,而Android源 ...
- 在Ubuntu上下载、编译和安装Android最新内核源代码(Linux Kernel)
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6564592 在前一篇文章提到,从源代码树下载下 ...
随机推荐
- 【JVM】虚拟机初见-运行时数据区图解
本文是听咕泡XX公开课视频整理的笔记,较书本更为总结,感谢. 计算机模型(汇编知识):数据集(数据).指令集(操作指令,+-等).控制集(分支循环) JVM运行时的数据区: 程序计数器(每个线程都有) ...
- Ruby字符串(1):String基本用法
String字符串 字符串由String类提供,除了直接使用单双引号或其它字面量创建字符串,也可以使用String.new()方法来创建. a = "hello" b = Stri ...
- leadcode的Hot100系列--62. 不同路径--简单的动态规划
题目比较清晰,简单来说就是: A B C D E F G H I J K L 只能往右或者往下,从A到L,能有几种走法. 这里使用动态规划的方法来做一下. 动态规划最重要的就是动态方程,这里简单说下这 ...
- Linux命令学习-tail命令
Linux中,tail命令的全称就是tail,主要用于监控日志文件. 对于一个正在运行应用来说,其对应的log日志文件肯定是在不断的更新,此时,便可通过tail命令来动态显示日志文件的内容.假设当前目 ...
- 在vue项目中遇到关于对象的深浅拷贝问题
一.问题 项目里新添加了一个多选的功能,其显示的数据都是从后端返回过来的,我们需要在返回来的数据外再额外添加一个是否选中的标记,我的选择是在返回正确的数据时将标记添加进去,然后push到数组中.然后就 ...
- .Net Core Api 授权认证
一.所使用到的NuGet: 1. System.IdentityModel.Tokens.Jwt 2. Microsoft.AspNetCore.Authentication.JwtBearer 二. ...
- 新手上路—Java的"瑞士军刀"
“ Jodd 是一个开源的 Java 工具集, 包含一些实用的工具类和小型框架.简单,却很强大!这在我们的日常开发工作中,无疑是如虎添翼,事半功倍. Jodd = Tools + IoC + MVC ...
- 【Spring容器】项目启动后初始化数据的两种实践方案
早期业务紧急,没有过多的在意项目的运行效率,现在回过头看走查代码,发现后端项目(Spring MVC+MyBatis)在启动过程中多次解析mybatis的xml配置文件及初始化数据,对开发阶段开发人员 ...
- Noip 2016 天天爱跑步 题解
[NOIP2016]天天爱跑步 时间限制:2 s 内存限制:512 MB [题目描述] 小C同学认为跑步非常有趣,于是决定制作一款叫做<天天爱跑步>的游戏.<天天爱跑步>是 ...
- 【小家Spring】老项目迁移问题:@ImportResource导入的xml配置里的Bean能够使用@PropertySource导入的属性值吗?
#### 每篇一句 > 大师都是偏执的,偏执才能产生力量,妥协是没有力量的.你对全世界妥协了你就是空气.所以若没有偏见,哪来的大师呢 #### 相关阅读 [[小家Spring]详解Propert ...