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