安装前提:经笔者多次测试,发现在64位linux安装失败,在32位rhel 6.5下面安装成功
一、下载安装包
1、
codeviz-1.0.12
2、
graphviz-2.38.0
3、gcc-4.6.2
4、安装gcc需要的依赖包
4.1
mpc-1.0.3
4.2
mpfr-3.1.4
4.3
gmp-5.0.1
二、安装
1、将下载的安装包放在/home/shlian/Downloads/目录,依次解压:codeviz、graphviz、mpc、mpfr、gmp到当前目录
2、安装gcc依赖包
cd gmp-5.0.1
./configure --prefix=/usr && make && sudo make install && cd ../mpfr-3.1.4 && ./configure --prefix=/usr && make && sudo make install && cd ../mpc-1.0.3 && ./configure --prefix=/usr && make && sudo make install
执行下面的命令,依次安装gmp、mpfr和mpc,因为mpc依赖于gmp、mpfr
3、安装graphviz
cd graphviz-2.38.0
./configure --prefix=/usr && make && sudo make install
4、安装codeviz
cd codeviz-1.0.12
cp ../gcc-4.6.2.tar.gz compilers
./configure --prefix=/usr && make && sudo make install
安装gcc大约需要一个小时左右,慢慢的让他安装吧
……
……经过耐心的等待,终于安装完成,然后就可以使用了
安装完成后,会有如下信息:
Patched gcc is installed to /usr/local/gccgraph. To compile a project for use with CodeViz, genearlly the following will work
make CC=/usr/local/gccgraph/bin/gcc or g++ To generate a full.graph file for C,
use genfull For C++, make sure you use the cppdepn method with
genfull -g cppdepn or the results will not be what you expect.
这个gcc默认会被安装到/usr/gccgraph/bin/目录,
三、使用流程
1. 使用刚刚安装的gcc-4.6.2来编译当前目录下所有.c文件,gcc/g++为编译的每个 C/C++文件生成.cdepn 文件。只要编译(参数 -c)就行,无需链接。
即为:/usr/gccgraph/bin/gcc test.c -c
2.调用genful会在当前目录生成一个full.graph文件,该脚本可以生成项目的完整调用图信息文件,记录了所有函数在源码中的位置和它们之间的调用关系。 因此调用图信息文件可能很大很复杂,,缺省使用 cdepn 文件来创建调用图信息文件。
即为:genfull -f test.c.cdepn
3. 使用gengraph可以对给定一组函数生成一个小的调用图 main.ps,显示函数调用关系。
即为:$ gengraph -f main -g full.graph
在可视化环境,打开main.ps即可,当然也可以生成其他格式的图片,详见后文
四、实例演示
1、写一个简单的程序:
2、使用刚刚安装好的gcc编译:
会生成test.c.cdepn文件,里面包含了生成.graph谇的信息:
3、生成full.graph文件
查看一下full.graph文件的内容:
4、生成图形文件:
这个main.ps即可在可视化环境使用graphviz打开,见效果图:
这图很清楚的反应了函数间的调用关系
生成不同类型的图形文件:
gengraph --output-type "png" -f main #详见gengraph --man
五、命令参数详解
1、genfull
genfull --man #可查看详细的参数
2、gengraph
gengraph --man #可查看详细的参数
-f:指定顶级函数,即入口函数,如main等(当然不限定是main了);
-o:指定输出的postfile文件名,不指定的话就是函数名了,如上面的main;
--output-type:指定输出类型,例如png、gif、html和ps,缺省是ps,如上面的main.ps;
-k:保留由-s忽略的内部细节形成的中间文件,为sub.graph
六、后记:
1、在安装完成后,调用gengraph(gengraph -f main -g full.graph)生成ps格式文件时,会报如下错误:
Error:<stdin> error: syntax error in line 4 near ';',不知道为什么,还没有解决,但是可以生成main.ps,并且main.ps信息是正确的,见上面的效果图。
如果使用 gengraph -f main -g full.graph --output-type "png" 则不会报错……
2、如果是c++的文件,使用genfull -g cppdepn test.c.cdepn 生成了full.graph,但是在调用gengraph时,报错:
Error:<stdin> error: syntax error in line 4 near ';
Error: <stdin>: syntax error in line 28 near '_Tp'
并且生成不main.ps,
经多次测试发现,报错与--output-type输出的格式有关系,有的格式不会报错,有的会报错,真心怀疑gengraph存在问题
解决方法还在寻找中…………