Objective c 如何在Xcode中使用Doxygen?
我正在尝试将Doxygen与Xcode一起使用。我跟着火车走。在几个错误之后,我构建了项目并生成了文档。我发现,如果您从doxygen保存doxygen.config,并在目录名中使用空格“”,则会出现问题和其他问题 但还有最后一个问题:Objective c 如何在Xcode中使用Doxygen?,objective-c,xcode,core-data,doxygen,Objective C,Xcode,Core Data,Doxygen,我正在尝试将Doxygen与Xcode一起使用。我跟着火车走。在几个错误之后,我构建了项目并生成了文档。我发现,如果您从doxygen保存doxygen.config,并在目录名中使用空格“”,则会出现问题和其他问题 但还有最后一个问题: ./search/search.png ./tab_b.gif ./tab_l.gif ./tab_r.gif ./tabs.css /Developer/usr/bin/docsetutil index com.mycompany.DoxygenExampl
./search/search.png
./tab_b.gif
./tab_l.gif
./tab_r.gif
./tabs.css
/Developer/usr/bin/docsetutil index com.mycompany.DoxygenExample.docset
2010-03-31 12:30:53.847 docsetutil[46338:807] Error converting XML to CoreData: Error Domain=NSXMLParserErrorDomain Code=76 UserInfo=0x1247d0 "Line 8: Opening and ending tag mismatch: Subnodes line 0 and Node
"
Failed to create docset indexer object
make: *** [docset] Error 1
load documentation set with path "/Users/WB/Library/Developer/Shared/Documentation/DocSets/"
我不知道是什么问题??有什么想法吗
我使用的是核心数据-sqlite。所以长话短说,脚本会动态创建一个Doxyfile,并且不会递归扫描所有子目录 请看这篇文章:
第二篇文章中有一个脚本基于苹果的脚本,不应该有这个问题。我使用上述脚本的扩展版本,但基于相同的原则。虽然这一次在另一个项目上一切正常,但我的脚本失败了。 docset的生成工作正常,但make命令会产生以下错误
x ./search/search_r.png
2010-07-26 17:36:01.815 docsetutil[8441:903]
Error converting XML to CoreData:
Error Domain=NSXMLParserErrorDomain
Code=76
UserInfo=0x1006105e0
"Line 8: Opening and ending tag mismatch: Subnodes line 0 and Node"
Failed to create docset indexer object
make: *** [docset] Error 1
我使用的make命令是:make--silent-C“$DOCSET\u OUTPUT/html”install
。
为了可读性,我在错误消息中添加了换行符。解析器告诉您XML格式不正确,但通常会显示该错误,因为在运行docsetutil之前没有生成任何内容 第一件事应该是检查控制台输出的许多行,并查找警告,可能存在。还要查找生成的文档集,然后右键单击>显示内容。如果在文档中看不到很多html文件,同样的事情是:生成文档失败,docsetutil与此无关。顺便说一句,使用CoreData的是docsetutil,不管您是否在项目中使用它
我不明白为什么苹果不提供一个更紧密集成的类似强氧剂的工具。或者比Crustify更好的代码格式化程序。拿着这些该死的工具,改进一下。啊 Doxygen生成Nodes.xml时存在已知错误。此处引用了它,并应在下一个doxygen版本(版本1.8.0后)中进行更正: 在Nodes.xml的末尾,还有一个 -silent选项是抑制错误的变通方法,但此参数不允许dosetgeneration正常工作
$DOXYGEN_PATH $TEMP_DIR/doxygen.config
make -C $TEMP_DIR/DoxygenDocs.docset/html install
插入以下代码
注意:该脚本在$TEMP_DIR中工作,而不是像AppleScript一样在SOURCE_ROOT中工作
$DOXYGEN_PATH $TEMP_DIR/doxygen.config
# make will invoke docsetutil. Take a look at the Makefile to see how this is done.
LINE=`xmllint --c14n $TEMP_DIR/DoxygenDocs.docset/html/Nodes.xml 2>&1 | awk 'NR == 1 {print $1}' | cut -d':' -f 2`
ECHO $LINE
if [ $LINE -gt 0 ]
then
echo "XML Cleaning "
sed -i.bak $LINE'd' $TEMP_DIR/DoxygenDocs.docset/html/Nodes.xml
fi
make -C $TEMP_DIR/DoxygenDocs.docset/html install
注意:awk和sed当然可以合并在一条线上