Linux/ubuntu下编译安装QT 4.8 (QT 4.8.4)

来源:互联网 发布:移动销售软件 编辑:程序博客网 时间:2024/06/10 05:18

今天在ubuntu下编译安装了QT 4.8.4,中间遇到很多问题,这里写一下以供参考。

首先从 http://qt-project.org/ 网站上下载 qt-everywhere-opensource-src-4.8.4.tar.gz ,解压缩。进入解压缩后的目录,执行

./configure

可能遇到的问题:

1.找不到g++编译器

    这个肯定是缺少g++编译器及其附属库,安装:sudo apt-get install g++

2.缺少X11开发库:

    按照网上的说法,安装:sudo apt-get install libx11-dev libxext-dev libxtst-dev libxt-dev

这样,再次 ./configure  后就不会出错了

然后

make

make install  (需要管理员权限)

完成。


编译完成后遇到的问题:

编译完成后测试了一段程序,发现如果使用自己编译出来的运行时库,界面字体不正常,效果如下图所示:


注:我的ubuntu在/usr/lib中包含了自带的QT库,但是是QT4.7版本的,如果使用自带的运行时库,则字体显示正常。考虑到版本较低和以后QT程序的发布,这里不准备使用自带的QT4.7库,所以有必要解决这个问题。

经过网上的一番搜索,发现是缺少fontconfig造成的,于是重新configure:

./configure -fontconfig

问题又来了,configure未通过,提示Fontconfig未通过,于是进入/config.tests/x11/fontconfig目录,执行make,发现缺少freetype相关的头文件,首先保证freetype开发库已经安装:

sudo apt-get install libfreetype6-dev 

安装后发现freetype头文件没在标准路径,于是

ln -s /usr/include/freetype2/freetype/ /usr/include/freetype

再次在这里make,还是出错,发现缺少fontconfig开发库,于是

sudo apt-get install libfontconfig1-dev


再次make,不再出错。

然后进入Qt源代码目录,再次执行

./configure -fontconfig

通过。

make

make install

完成。


内嵌GTK主题:

./configure -fontconfig -gtkstyle

看一下生成的GTK theme support 是否为yes,不是的话可能缺少libgtk2.0-dev库,安装:

sudo apt-get install libgtk2.0-dev   (注:包的名子可能在不同的平台上不太一样)




转:

安装过程中会提示需要用户手动安装扩展依赖的库  libglib2.0-dev,libSM-dev,libxrender-dev,libfontconfig1-dev,libxext-dev,如 果需要用到 OpenGL 则还需要安装 libgl-dev 和 libglu-dev,而这两个库是在 libglu1-mesa-dev  包中。因此,一个安装完整依赖包的命令是: 

sudo apt-get install  libglib2.0-dev libSM-dev libxrender-dev libfontconfig1-dev libxext-dev libglu1-mesa-dev




另:如何更改运行时库?方法如下:

    在编译完一段程序后(如Helloword),打开程序编译目录(如helloworld-build-desktop-Debug,不是源代码目录),找到Makefile,修改其中的LFLAGS一行为:

LFLAGS        = -Wl,-rpath=.:./lib:/usr/lib:/lib:/usr/local/Trolltech/Qt-4.8.4/lib

这样告诉程序在运行时,查找依赖库的顺序为 程序当前所在目录、当前目录下的lib目录、/usr/lib目录、/lib目录、/usr/local/Trolltech/Qt-4.8.4/lib目录(QT安装后的库目录)。这样修改后重新编译生成新的执行程序,库查找顺序就按照设定的顺序进行了,可以用命令ldd 可执行程序名查看找到的运行时库路径。所以如果把自己编译生成的库放到当前目录下,则程序运行时使用的就是自己的库。把这个测试程序运行时所需的QT库(libQtCore.so.4.8.4和libQtGui.so.4.8.4)拷贝到当前目录下并改名为libQtCore.so.4和libQtGui.so.4,即去掉后面的子版本扩展名,双击运行,程序就链接自己编译的库来运行了。

当然这种做法是临时的,在QtCreator中右键点击工程名--执行qmake,Makefile会又回到原来的样子,要永久修改,需要修改QT安装目录下的/mkspecs/common/gcc-base-unix.conf,把QMAKE_LFLAGS_RPATH这一行修改为:

QMAKE_LFLAGS_RPATH   = -Wl,-rpath=.:./lib:/usr/lib:/lib:

即可。

0 0
原创粉丝点击