Linux下QVFB的快速独立编译

在Qt-Embedded 4.4以后的版本发布中,host端的工具和target的工具分开来编译了。如果你要编译Qt-Embdedded的版本,则必须先有一个编译好的Qt-X11的版本。

编译Qt-X11是一个挺漫长的过程,而且也浪费空间。所以我们可以选择安装Linux发行版提供的已经编译好的二进制的版本。Qt开发环境的安装(Ubuntu)介绍了这个安装过程。但遗憾的qt4的桌面包并没有提供编译好的qvfb版本,qvfb工具在qt3-dev-tools-embedde这个包里,而这个包依赖於Qt3的库,我们没必要仅仅为了一个qvfb再去安装qt3的包。所以,我们需要自己编译qvfb。

当然你可以把整个qt-x11的代码包下载下来,重新configure -qvfb,这样当然能够编译成功,这不是我们想要的。我们只需要编译qvfb。 但是当你尝试常规的qmake ; make的时候发现没法编译成功。 该原因在QtCreator中编译qvfb失败的原因讨论过,现在发现不仅仅是QtCreator/SDK中的问题,在源码发布包qt-x11-opensource-src-4.5.1中是一样的,所以我们需要做点小小改动。

1)我们可以把tools目录从qt-x11-opensource-src-4.5.1中单独拷贝出来,证明它不依赖于其他代码,执行命令

$  qt-x11-opensource-src-4.5.1/tools/ . -r2) 将QT_SOURCE_TREE的目录设置到我们当前的目录上,这个变量qvfb.pro要用到,执行命令

$ qmake -set QT_SOURCE_TREE $PWD 3) 改动qvfb.pro中使用变量方式$$QT_SOURCE_TREE为$$[QT_SOURCE_TREE],执行命令为

$ sed -i "s/QT_SOURCE_TREE/[QT_SOURCE_TREE]/g" tools/qvfb/qvfb.pro4)执行qmake,make编译,执行命令为

$ cd tools/qvfb/;qmake;make;cd -5) 最后qvfb编译成功,在./bin目录下

结论:在系统里已经安装好X11的情况下,只需要tools那个目录的代码就可以编译qvfb了

相关推荐