Обзор:
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/), чтобы опубликовать его Windows. двоичные файлы из версий SVN. Для этой цели используется 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
Я не уверен, является ли проблема с обратной косой чертой или косой чертой в гибкой версии недавно появившейся ошибкой/функцией или нет. Есть ли способ исправить это?