Cygwin 在windows上编译doxygen时需要更多的眼睛来发现错误

Cygwin 在windows上编译doxygen时需要更多的眼睛来发现错误,cygwin,doxygen,visual-c++-2008,Cygwin,Doxygen,Visual C++ 2008,摘要: 1>Executing Lex for d:\usr\doxygen\src\code.cpp ... 1>flex: can't open ..\src\code.l 1>Project : error PRJ0019: A tool returned an error code from "Executing Lex for d:\usr\doxygen\src\code.cpp ..." 详细信息 我偶尔编译Doxygen()的源代码,以从SVN版本发布其Win

摘要:

1>Executing Lex for d:\usr\doxygen\src\code.cpp ...
1>flex: can't open ..\src\code.l
1>Project : error PRJ0019: A tool returned an error code from "Executing Lex for d:\usr\doxygen\src\code.cpp ..."
详细信息

我偶尔编译Doxygen()的源代码,以从SVN版本发布其Windows二进制文件。VisualStudioC++ 2008(即版本9)用于此目的。由于Doxygen源还使用yacc和lex工具,cygwin bison和flex在过去被成功使用。它停止工作了。也就是说,flex抱怨它找不到它的来源(如上面的摘要所示)。我的计算机上的flex版本为:

d:\>flex --version
flex 2.5.35
VS项目
winbuild\Doxygen.vcproj
配置为启动flex,Visual Studio显然为此生成了一个批处理文件。生成日志包含以下内容:

Creating temporary file "d:\usr\doxygen\winbuild\Debug\BAT00000241406084.bat" with contents
[
@echo off
flex -PcodeYY  -od:\usr\doxygen\src\code.cpp  ..\src\code.l
if errorlevel 1 goto VCReportError
goto VCEnd
:VCReportError
echo Project : error PRJ0019: A tool returned an error code from "Executing Lex for d:\usr\doxygen\src\code.cpp ..."
exit 1
:VCEnd
]
Creating command line "d:\usr\doxygen\winbuild\Debug\BAT00000241406084.bat"
在从命令行手动尝试命令时,我确实可以观察到相同的情况:

d:\usr\doxygen\src>flex -PcodeYY  -od:\usr\doxygen\src\code.cpp  ..\src\code.l
flex: can't open ..\src\code.l
但是,当用普通斜杠替换
code.l
路径上的反斜杠时,它会起作用:

d:\usr\doxygen\src>flex -PcodeYY  -od:\usr\doxygen\src\code.cpp  ../src/code.l

我不确定flex版本中反斜杠与斜杠的问题是否是新引入的bug/特性。有什么办法可以解决这个问题吗?

我努力了,找到了原因。在过去,
cygwin
实际上对我有用。而且它仍然可以使用反斜杠——它只显示关于更好地使用POSIX路径的警告

原因是,我安装了更多的工具,带来了更多的
flex.exe
实用程序。第一部分是msysGit安装的一部分,第二部分来自Ruby开发工具包。它们都不支持路径中的反链接。Doxygen在重命名它们之后再次开始编译


事实上,GnuWin
flex.exe
在没有任何警告的情况下使用反斜杠——我现在更喜欢它。

Cygwin不支持带有反斜杠的路径。Can应该尝试使用GNU Win工具,而不是按照doxygen手册安装一章中的建议。嗨,Dimitri。我试过了,但对我不起作用。实际上,cygwin确实支持带反斜杠的路径——它只警告我应该使用POSIX路径。