Linux下Qt创建和调用共享库文件.so

费了点功夫,总算get了编写共享库(Shared Library,Windows下称为“动态链接库”,即Dynamic Link Library)和调用的这个新技能!

动态链接库的好处是不言而喻的,一个稍微复杂一点的程序,顶层设计的时候良好的类库划分可以让工作变得很简单,而将不同类编译成共享库文件可以实现程序的模块化,提高代码复用程度,在保证接口兼容的情况下更新一个程序只用更新共享库(Windows下是dll,Linux下常见的是so)即可。

下面以Linux下的Qt Creator这个IDE为例,讲述Qt(严格意义上是C++)共享库文件的编译和调用。

Continue reading Linux下Qt创建和调用共享库文件.so

海淘Kindle免税通关到手

去年(2013年)12月Amazon.ca上Kindle特惠,CAD$ 54.88(含加国消费税)就能买下一台Kindle标准版(国内俗称Kindle 5)。不能免俗,定下一台,财付通境外支付(虚拟American Express)付的款,转运公司走的友家速递(我海淘除了一次是ComGateWay以外,其它都是走的友家)。

元旦节过了之后,收到短信通知要缴税,上UCS合众速递的网站查了一下,完税价格定的800元,按10%税率需要缴纳80元……(54.88 CAD约合人民币312元,完税价格定800,海关穷疯了吗?)

果断打电话到UCS(我打的沈阳那个号码),说明了一下情况,那边给我发了一封邮件,我按照邮件内容,把Amazon.ca里订单的Invoice保存成PDF(也可以截图),然后手写了情况说明、签字、扫描(拍照),发给了UCS的工作人员。

1月5日,免税放行了(还是要赞一下海关和UCS的办事效率)。

Kindle到手,响应速度、翻页速度真心比原来的Bambook经典版快出一大截,系统用的原系统(界面英文,但是支持中文电子书)。来一张Kindle和Bambook的合照吧。

Kinlde and Bambook

DragonFly BSD编译安装Qt 5.2.0

BSD系统在Qt世界里压根不是Tier 1的级别啊,看看Digia只提供Windows, Linux, Mac, Android的预编译文件就知道了。。没关系,好歹Qt是个开源软件,自己动手编译,丰衣足食。下载Qt 5.2.0的源代码这一步我就跳过去了,下面的路径都是Qt源码目录里的。

示例环境:DragonFly BSD 3.6.0(因DragonFly的dports是基于FreeBSD的ports树,所以下面的操作也适用于FreeBSD,详细附在正文后)

修改源码

Qt 5.2.0没有DragonFly BSD的mkspec,可以在FreeBSD的mkspec基础上做点改动来适配dfly,此外qtbase的qfileselector.cpp也需要做一个dirty patch不然编译会出错。

Continue reading DragonFly BSD编译安装Qt 5.2.0