本文记录的是在Puppy圣诞版(4.0)上安装doxygen1.63、graphviz2.22.2、HTML Help Workshop(v4.74)的过程。
本机的Gcc版本为:
# gcc --version
gcc (GCC) 4.2.2
到官网去下载,网页上只有最新版的下载,老版本的没有下载链接
下个1.8.10,然后解压,进入目录后 ./configure,make 出错,是个语法错误,我认为是Gcc版本低的原因。
看了一下常用的PT1.4中的Doxfile文件,是使用Doxygen 1.4.3版本产生的,我也没有必要使用最新版的。
上网上搜了一下老版本的Doxygen,根本找不到链接。
看了一下官网上的下载链接,ftp://ftp.stack.nl/pub/users/dimitri/doxygen-1.8.10.linux.bin.tar.gz
把后面的文件名去掉,ftp://ftp.stack.nl/pub/users/dimitri/ ,再把此网址在Firefox上的地址栏中“粘贴并转到”,看到了所有版本的下载画面
找一个低版本的1.5.8, make 后安装成功,依次试验高版本,发现本机支持的最高版本是1.6.3。
graphviz的过程基本上是一样的。
网站上显示的是最新版的,所有版本的下载只要把最后的文件名去掉就可以打开。
从2.20开始编译,找不到GD库,./configure --help后,./configure --with-libgd=no --with-mylibgd=yes可以屏蔽本机的GD库,使用Graphviz自己的库。
make 成功了,本机支持最高版本的是Graphviz2.22.2,再高的版本编译不成功。
HTML Help Workshop(v4.74)直接使用Wine不能安装,在WinXP下安装后,把文件夹拷贝到 /root/.wine/drive_c/Progame Files就行了,删除/root/.wine/drive_c/windows/system32/中的 itircl.dll itss.dll,将XP中对应的二个文件拷贝到root/.wine/drive_c/windows/system32,并且删除/usr/share/lib/itss.dll.so,使用regsvr32 root/.wine/drive_c/windows/system32/itss.dll,regsvr32 root/.wine/drive_c/windows/system32/itirc.dll,注册这两个控件。使用下面的脚本能正确编译hhp到chm。
#! /bin/sh
export DISPLAY=:0.0
export WINEDLLOVERRIDES="itss=n,b"
wine /root/.wine/drive_c/Program\ Files/HTML\ Help\ Workshop/hhc.exe index.hhp >a.txt
测试上述软件都能正常工作时,将下面的文本保存到/bin/Doxygen.linux,Doxygen配置文件如下:
DOXYFILE_ENCODING = UTF-8
OUTPUT_LANGUAGE = Chinese
OPTIMIZE_OUTPUT_FOR_C = YES
CHM_INDEX_ENCODING = GBK
PROJECT_NAME = "My Project"
CREATE_SUBDIRS = YES
RECURSIVE = YES
EXAMPLE_RECURSIVE = YES
GENERATE_AUTOGEN_DEF = YES
SOURCE_BROWSER = YES
INLINE_SOURCES = YES
GENERATE_LATEX = NO
MACRO_EXPANSION = YES
GENERATE_HTMLHELP = YES
#GENERATE_RTF = YES
HAVE_DOT = YES
UML_LOOK = YES
TEMPLATE_RELATIONS = YES
CALL_GRAPH = YES
CALLER_GRAPH = YES
DOT_GRAPH_MAX_NODES = 200
DOT_TRANSPARENT = YES
DOT_MULTI_TARGETS = YES
DISTRIBUTE_GROUP_DOC = YES
INCLUDE_FILE_PATTERNS = *.c *.cpp *.h *.txt *.dox
REFERENCES_RELATION = YES
编写自动生成帮助的脚本如下:
#! /bin/sh
regsvr32 /root/.wine/drive_c/windows/system32/itss.dll
regsvr32 /root/.wine/drive_c/windows/system32/itircl.dll
rm -rf /usr/lib/wine/itss.dll.so
if [ -f Doxyfile ]; then
echo "file CMakeLists.txt is ok"
else
ln -sf /bin/Doxyfile.linux Doxyfile
fi
if [ -n "$1" ]; then
doxygen $1
else
doxygen
fi
if [ -L Doxyfile ]; then
rm Doxyfile
fi
cd html
export DISPLAY=:0.0
export WINEDLLOVERRIDES="itss=n,b"
wine /root/.wine/drive_c/Program\ Files/HTML\ Help\ Workshop/hhc.exe index.hhp >a.txt
read -p "Press any key to continue." var
exit 0
此配置文件能正确处理汉字,并且自动调用Graphviz生成各种图,自动打包hhp文件生成index.chm,最终的效果如下图所示: