Нужно больше глаз, чтобы обнаружить баг с компиляцией doxygen на windows

Обзор:

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

Я не уверен, является ли проблема с обратной косой чертой или косой чертой в гибкой версии недавно появившейся ошибкой/функцией или нет. Есть ли способ исправить это?


person pepr    schedule 10.04.2013    source источник
comment
Cygwin не поддерживает пути с обратной косой чертой. Вместо этого можно попробовать использовать инструменты GNU Win gnuwin32.sourceforge.net/packages.html, как это предлагается в главу по установке руководства doxygen.   -  person doxygen    schedule 10.04.2013
comment
Привет Дмитрий. Я пробовал, и это не сработало для меня. На самом деле, cygwin поддерживает пути с обратной косой чертой — он только предупреждает, что я должен использовать пути POSIX.   -  person pepr    schedule 11.04.2013


Ответы (1)


Я старался и нашел причину. cygwin на самом деле работал на меня в прошлом. И он по-прежнему работает с обратными косыми чертами — он только отображает предупреждение о том, что лучше использовать пути POSIX.

Причина в том, что я установил больше инструментов, которые принесли больше flex.exe утилит. Первый является частью установки msysGit, а второй входит в состав Ruby Development Kit. Оба они не поддерживают люфты в дорожках. Doxygen снова начал компилироваться после их переименования.

Правда в том, что GnuWin flex.exe потребляет обратную косую черту без предупреждения - сейчас я предпочитаю это.

person pepr    schedule 11.04.2013