Linux下doxygen、graphviz生成chm文档

来源:互联网 发布:js弹出消息框自动关闭 编辑:程序博客网 时间:2024/06/05 16:26

本文记录的是在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,最终的效果如下图所示:




0 0
原创粉丝点击