美文网首页
ns3生成PDF格式API文档

ns3生成PDF格式API文档

作者: catHeart | 来源:发表于2017-06-16 10:55 被阅读120次

    不喜欢ns3提供的HTML格式API文档,特别是当网速慢的时候,查找一个函数都要等上一阵子。ns3的manual, model-library和tutorial都有PDF格式的文档,唯独没有提供API的PDF文档。所以决定自己生成一下PDF格式的API文档。

    安装必要软件

    ns3的文档通过doxygen从代码注释中抽取出来,整合成文档。同时,提供了各类之间的依赖关系,其依赖关系图通过graphviz的dot命令生成。生成PDF文档的基本流程是,首先通过 doxygen生成Latex文档,该过程需要使用到graphviz,然后利用Latex生成PDF。因此,需要安装doxygen、graphviz和latex三个软件包。软件包安装方式依操作系统发行版本而已,不给出具体指令了,以免造成误导。

    修改doxygen配置文件

    doxygen的输出由配置文件doxygen.conf控制,其中GENERATE_LATEX控制是否输出Latex格式的文档,默认为否。PDF文档是基于Latex生成的,此处将GENERATE_LATEX该为是。

    $NS3/doc/doxygen.conf中,GENERATE_LATEX = NO改为GENERATE_LATEX = YES

    waf

    waf是ns3的编译系统,依次执行以下指令,输出Latex格式的文档。

    waf configure
    waf doxygen
    

    修改中间文件

    如果一切正常,只需要在$NS3/doc/latex目录下,执行make指令就可以了。但是(现实总是充满惊喜和惊吓),存在着分配的内存不足和超链接的问题,需要修改一下相关的中间文件。

    • 修改Makefile
      分配更多的内存给pdflatex。打开$NS3/doc/latex/Makefile,将所有的
    pdflatex refman
    

    替换为

    buf_size=800000 save_size=40000000 pool_size=40000000 extra_mem_top=40000000 pdflatex refman
    
    • 修改refman.tex
      打开$NS3/doc/latex/refman.tex,在\begin{document}前,插入\hypersetup{draft}。这样会忽略超链接存在的问题,完成编译。

    生成PDF文件

    $NS3/doc/latex目录下,执行make指令,得到refman.pdf

    其他

    • 编译过程中,pdflatex遇到问题时暂停,直接回车,继续编译过程。
    • 目前的方法还是很不完美,生成的PDF文件没有链接,无法从目录直接跳转到对应的正文。
    • 最后生成的refman.pdf文件有288M,真是够大的。
    • 最终的选择还是HTML,编译ns3的API文档为html格式,然后用lighttpd搭了一个Web服务器;搜索功能很方便,运行速度也很快。

    相关文章

      网友评论

          本文标题:ns3生成PDF格式API文档

          本文链接:https://www.haomeiwen.com/subject/bdypqxtx.html