64位centos下用Qt编译生成c/c++代码检查工具cppchek的GUI

64位centos上用Qt编译生成c/c++代码检查工具cppchek的GUI

cppcheck是开源的C/C++代码静态分析工具,它提供命令行和GUI两种方式对C/C++源码进行检查。这次,主要研究linux下如何对cppcheck源码编译生成GUI可执行文件。

系统环境:

64位centos5.4,

cppcheck1.44(可以从http://sourceforge.net/projects/cppcheck/files/ 上下载cppcheck-1.44.tar.gz )

 

1.编译GUI需要QT的一些包(具体参看cppcheck解压目录/usr/local/cppcheck-1.44/readme_gui.txt文件)

我下载的是QT的SDK包:qt-sdk-linux-x86_64-opensource-2010.04.bin

在终端

$./qt-sdk-linux-x86_64-opensource-2010.04.bin即可弹出Qt安装界面,按默认步骤一路装下去即可。

2.在终端

$cd /usr/local/cppcheck-1.44/GUI

$qmake

$make

最后的编译结果会给出错误提示“/libQtGui.so: undefined reference to `FcFreeTypeQueryFace' ”。

 

解决办法如下:

下载最先的fontconfig-2.8.0(可以从http://www.fontconfig.org/release/ 处获得最新版本的fontconfig)

因为fontconfig2.8.0运行要求:

FreeType-2.3.12 and either expat-2.0.1 or libxml2-2.7.6

(资料参考http://www.linuxfromscratch.org/blfs/view/cvs/general/fontconfig.html )

 

expat-2.0.1资料链接给出的软件安装包在执行make,make install时有些问题,所以我单独下载了另一个版本

expat-2.0.1-87.1.i386.rpm (可以从ttp://rpm.pbone.net/index.php3/stat/4/idpl/10639600/com/libexpat1-2.0.1-87.1.i386.rpm.html 处获得)

 

(1)   编译生成FreeType

$tar jxvf  freetype-2.3.12.tar.bz2

$cd  freetype-2.3.12

$./configure --prefix=/usr && make && make install

 

(2)   编译生成expat

$rpm -ivh expat-2.0.1-87.1.i386.rpm


(3)  编译生成fontconfig

$cd fontconfig-2.8.0

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

$make

$make install

说明:默认fontconfig编译的的文件在/usr/lib 下,也可以自行指定其他目录

(4)正常情况下 在32位linux上执行上述(1)-(3)即可,t跳到(5)成功编译生成GUI.

但是64位linux有些特别:

64位下,默认fontconfig编译的的文件在/usr/lib 下,主要libfontconfig*.* 几个,把这几个文件复制到 /usr/lib64下,再 ldconfig 更新下缓存

 

(5) 编译GUI

用文本编辑器打开GUI目录下GUI.pro文件,增加内容(注:此处/usr应和步骤(3)里./config时指定的--prefix=/usr保持一致)

LIB+=-L/usr/lib

$ ce /usr/local/cppcheck-1.44/GUI

$qmake

$make