Ubuntu14.04中编译Qt库

1、配置

    Qt版本:4.8.3

    Ubuntu版本:14.04LTS(32bit)

1.1 脚本

    编写一个配置脚本qt4.8.3_configure-for-x86.sh,内容如下:

cho -e "o\nyes" | ./configure -prefix $HOME/Qt4.8.3 -debug-and-release -webkit -dbus -svg -qt-zlib -qt-libpng -qt-libmng -qt-libtiff -qt-libjpeg

    说明:a) -webkit选项,表示编译webkit模块[1]; 

                b)-dbus选项,表示编译dbus模块,maliit-keyboard需要用到这个模块,详见《Ubuntu中编译安装maliit-0.94-qt4》;   

                c)-svg选项,表示编译svg模块,支持svg图像[5],maliit-keyboard需要用到这个模块,详见《Ubuntu中编译安装maliit-0.94-qt4》。

                d) -prefix选项,指定Qt安装路径。

    使用以下命令使得可执行:

ubuntu $ sudo chmod +x qt4.8.3_configure-for-x86.sh
    执行配置文件:

ubuntu $ ./qt4.8.3_configure-for-x86.sh

    如果修改了参数,需要重新配置:

To reconfigure, run 'make confclean' and 'configure'.

1.2 Basic XLib functionality test failed!

    配置过程出现了这个错误:

Basic XLib functionality test failed!
 You might need to modify the include and library search paths by editing
 QMAKE_INCDIR_X11 and QMAKE_LIBDIR_X11 in /home/liyihai/es/qt-everywhere-opensource-src-4.8.3/mkspecs/linux-g++.

    经过查找,发现系统上已经安装好X11,并且存在/usr/include/X11和/usr/lib/X11。因此猜想是环境变量的设置问题,提出了1.2.1和1.2.2的尝试方法。

1.2.1 方法1

    根据提示,在/home/liyihai/es/qt-everywhere-opensource-src-4.8.3/mkspecs/linux-g++/qmake.conf中添加

QMAKE_INCDIR_X11 = /usr/include/X11
QMAKE_LIBDIR_X11 = /usr/lib/X11
    结果问题依旧!

1.2.3 方法2
    在~/.bashrc中添加:

export QMAKE_INCDIR_X11=/usr/include/X11
export QMAKE_LIBDIR_X11=/usr/lib/X11
    结果问题依旧!

1.2.2 方法3   

根据参考资料[2]的说法,这是因为系统没有安装libxtst-dev,执行以下命令安装libxtst-dev即可解决问题:

ubuntu $ sudo apt-get install libxtst-dev

2 编译

2.1 make

 error: undefined reference to 'WebCore::JSHTMLImageElementPrototype::self(JSC::ExecState*, JSC::JSGlobalObject*)'

    这是由于在编译的中途使用Ctrl+C强制终止几次,先make clean,然后再重新make即可。

2.2 make install

    编译好后,执行make install进行安装即可。

3 环境变量

    在~/.bashrc的末尾添加:

export QTDIR=/home/liyihai/Qt4.8.3
export PATH=$QTDIR/bin:$PATH
export QMAKESPEC=$QMAKESPEC:$QTDIR/mkspecs/linux-g++
export LD_LIBRARY_PATH=$QTDIR/lib

    重启终端,或者执行以下命令,使环境变量生效:

ubuntu $ source .bashrc

3.1 QMAKESPEC

    安照上面的方法设置好环境变量时,对一个工程执行qmake,结果:

liyihai@ubuntu:~/matrix-gui-v2-matrix_browser$ qmake
Could not find mkspecs for your QMAKESPEC(:/home/liyihai/es/qt4.8.3_x86/mkspecs/linux-g++) after trying:
        /home/liyihai/Qt4.8.3/mkspecs
    根据参考资料[4],将QMAKESPEC的值改为:

export QMAKESPEC=linux-g++

参考资料

[1]Qtwebkit配置,设置交叉编译环境

[2]CENTOS 下安装 QT 遇到遇到错误 QMAKE_INCDIR_X11 and QMAKE_LIBDIR_X1 

[3]Ubuntu下的Qt库编译和环境变量设置

[4]为什么linux下Qt程序编译时找不到mkspecs for QMAKESPEC

[5]qt4.8.4+wince7.0+opengles2.0开发环境搭建

你可能感兴趣的:(Ubuntu14.04中编译Qt库)