QCA 2.1.0在Windows上用MinGW的编译过程

QCA是Qt Cryptographic Architecture的缩写,简而言之就是安全组件(如OpenSSL)的Qt封装,方便Qt程序调用,而不用写一大串C代码。QCA自然是开源的,而且好像是KDE的一个project(反正代码是在KDE的git服务器上)。

时隔四年,QCA总算发布了新版本,虽然是小版本号的变化(2.0.3 -> 2.1.0),但却是非常重要的更新!!!首先支持使用Qt5了,其次使用CMake而不是qmake来管理了。如果不支持Qt5的话,我也不会关心QCA的…………

但是目前主流Linux发行版的官方仓库还是2.0.3版的QCA,而且这次也没有Windows builds下载,只有源码包,好在编译不太麻烦,下面就记录了本次编译的过程(环境:Windows 8.1 x64 Pro, MinGW64 4.9.1 x64, MSYS, Qt 5.3.2 x64 static, OpenSSL 1.0.1j x64 static, CMake 3.1.0)。这次要编译的就是静态链接的QCA,如果你要编译动态链接的QCA,上面的工具链必须也是动态链接的!

Continue reading QCA 2.1.0在Windows上用MinGW的编译过程

Windows下VS2012编译安装Ruby 2.1.1(64位版)

虽然学过一段时间的Python,但是决心转投Ruby玩玩看,Ruby也有GTK+和Qt的扩展(还有KDE的API绑定呢!)。Linux下安装是so easy了,Windows下也有懒人安装包,不过版本比较老。所以我打算用VS2012编译安装最新的稳定版本2.1.1,下面就讲讲Windows下的编译安装过程(以编译安装64位版本为例)。

Continue reading Windows下VS2012编译安装Ruby 2.1.1(64位版)

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

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

Visual Studio 2012下的OpenCV 2.4.7安装过程

邮箱已经收到了Visual Studio 2013的升级通知,但是很多软件如OpenCV、Qt等都只有VS2012的预编译库,还是懒得升级了(除非VS支持C++11了)。

网上搜了一些VS2012(或VS2010)安装OpenCV的教程,抄来抄去很不规范……还是直接参考官方的安装过程靠谱,你可以把本文当作一小部分官方安装指南的中文翻译。

Continue reading Visual Studio 2012下的OpenCV 2.4.7安装过程

NetBSD安装awesome窗口管理器

好久没玩NetBSD了,今天在VirtualBox 4.3里装了一个NetBSD 6.1.2,这次要搞个WM玩一下~瞄准的是近期出镜率略高的awesome

NetBSD下Awesome的编译安装

awesome在pkg仓库里没有,pkgsrc预编译的只有一个老版本(有问题用不了),所以必须自己下载pkgsrc来编译。pkgsrc的下载以前说过这里就不说了。

为了节约时间,先用pkgin把编译awesome的依赖包能装上的都先装上了。

Continue reading NetBSD安装awesome窗口管理器

Fedora 19编译内核(打BFS+BFQ+UKSM补丁)简易指南

自定义内核显然就是开源的好处之一,不过内核编译属于高级用户(Advanced Users)的范畴,newbies慎入。下面以Fedora 19为例(Fedora 14及更高版本都是通用的内核编译方法,以后如果有变动了我会更新)。

准备工作

终端运行,

su -c 'yum install rpmdevtools yum-utils ncurses-devel'

我的系统装在SSD上,比较小,所以我把RPM的编译主目录放在移动硬盘(/media/c/rpmbuild)上。编辑~/.rpmmacros,修改第一行为:

Continue reading Fedora 19编译内核(打BFS+BFQ+UKSM补丁)简易指南

Slax的QtWebKit 2.3及QupZilla浏览器

不知道Slax是什么?一个小型的模块化的KDE桌面Linux发行版。

最近又跟浏览器干上了,本来就是一个小型发行版,所以不想塞一个Firefox、Chrome、Opera这种重型浏览器。之前一直在用rekonq浏览器,后来又来试了一试QupZilla,一样的QtWebKit内核,QupZilla的浏览体验倒好多了,很顺畅,没有Rekonq那种加载时一卡一卡的感觉。不过QupZilla的sb包有2MB,而Rekonq只有800+KB。

现在Slax搭载的Qt 4.8.4,所以QtWebKit是官方仓库里比较老的QtWebKit 2.2,WebKit版本好象是534.xx,不支持桌面通知、WebGL、拼写检查等功能(大部分和HTML5相关)。不过现在好了,我上传了QtWebKit 2.3的buildscript,并且传了一个叫作qupzilla-next的buildscript,依赖新版的WebKit编译。

对于想在Slax下获得更好的浏览体验的朋友,在终端下执行:

slax activate qupzilla-next

前几天Digia发布了Qt 4.8.5,包含最新的WebKit,所以如果Slax能在下一个版本更新Qt的话,就不需要额外加载qtwebkit-23这个包,可以方便很多。 大误,Qt 4.8.5只是小幅度更新QtWebKit,还是2.2……

Chromium OS内核标准编译教程

上一篇文章写得略tricky,本文改为参考官方Kernel Configuration配合Google网上论坛搜集来的各种指南写成。

If you’re reday. Let’s rock the Chromium OS!

准备工作就不多讲了,内核源代码(kernel或者kernel-next,本文以kernel为例)至少要同步好。进入cros_sdk(chroot),下面的操作都是在cros_sdk下,不是在宿主Linux终端下。

Continue reading Chromium OS内核标准编译教程