1

概要:

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 ( http://www.doxygen.org/ ) のソースをコンパイルして、SVN バージョンから Windows バイナリを公開しています。この目的のために、Visual Studio C++ 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 バージョンでのバックスラッシュとスラッシュの問題が、新たに導入されたバグ/機能によるものかどうかはわかりません。それを修正する方法はありますか?

4

1 に答える 1