Qt经典出错信息之:“undefined reference to 'FcFreeTypeQueryFace' ”详解

前几天,发现了一个经典的出错信息:“undefined reference to 'FcFreeTypeQueryFace' ”。鼓捣了一阵,查找了一些资料,顺利解决。总结一下吧。

 

一、用的Linux是Cent OS 5.0版,下载Qt的最新版SDK,Qt 4.7.0,流程如下:

 

1. 进入Nokia的Qt的网站,选择:

 

2. 下载下来之后,在系统中进行安装,流程如下:

 

chmod u+x qt-sdk-linux-x86-opensource-2010.05.1.bin (设置权限)

./qt-sdk-linux-x86-opensource-2010.05.1.bin(运行安装程序)

 

3. 根据向导的提示一步一步完成安装

    安装好之后,,默认就会测试Qt Creator的运行,以验证安装是否成功;同时桌面上会增加一个Qt Creator的图标,双击可运行。

    至此安装完毕。

 

4. 检查并测试环境是否正确的建立

这个主要就是检查环境变量是否设置正确。可以找到Qt Demo所在的目录,用Qt Creator打开一个默认的例子程序,编译运行一下,如果提示“No valid Qt version set Set one in Tools/Options”,就需要进入该目录进行设置,方法比较简单,不再赘述了。

 

 

二、错误的产生

 

验证安装正确,并且环境搭建成功后。运行测试程序,发现报错,错误提示为:“undefined reference to 'FcFreeTypeQueryFace' ”。

根据经验得知,这种错误一般就是由于系统所带的某个库版本与Qt要求的这个库版本不一致造成的,而一般是要升级系统自带的版本到更高的版本就能解决。

 

三、解决方法

 

在网上查阅相关资料后,发现这个问题跟fontconfig库有关,Cent OS 5.0上的默认是2.4.1的,而Qt则要求要2.4.2以上版本才可以。

 

于是从http://cgit.freedesktop.org/fontconfig/下载最新的2.8.0的源码。

 

把它拷贝进系统中,然后依次执行如下命令:

 

tar -zxvf fontconfig-2.8.0.tar.gz -C /mytmp  (解压到mytmp文件夹中)

 

./configure --sysconfdir=/etc --prefix=/usr --mandir=/usr/share/man

 

make install

 

make clean   (清除无用文件)

 

然后重新启动系统之后再次运行程序就没有问题了。

 

你可能感兴趣的:(linux,测试,qt,Nokia,reference,2010)