Когда будет доступна более новая версия flex для windows?
Я использую Flex (лексический анализатор, а не Adobe Flex) в проекте. Тем не менее, я хочу иметь возможность компилировать и на платформах Windows, но самая новая версия для Windows- только 2.5.4a, поэтому мой файл для версии 2.5.35 не будет компилироваться. И нет, я не могу перейти на самую высокую поддерживаемую версию Windows.
Кто-нибудь знает о планах по обновлению версии Windows, или у вас есть предложения по компиляции на Windows?
2 ответа
Вы можете задать вопрос в списке рассылки или принять участие в проекте Flex самостоятельно. Я думаю, что кодовая база для Flex некоторое время оставалась статичной, но я не знаю, кто поддерживает порт Windows. Тем временем...
Я бы порекомендовал включить полученный источник в ваш проект.
- Сгенерируйте лексер в системе Linux для создания ваших файлов lex.c/lex.h (или чего-либо еще)
- Включите эти файлы в исходный код Win32 C перед сборкой
Если у вас нет прямого доступа к системе Linux, вам может подойти виртуальная машина. Исходный код Flex должен соответствовать некоторым стандартам C, основанным на Windows, но большинство различий в POSIX можно изменить, чтобы довольно легко использовать Win32 API.
Может быть распространять как:
/src/source_files.c
/src/lex.l
/src/win32_lex/lex.c
Таким образом, системы с современным flex могут генерировать исходный код из файла lex, а системы Windows, компилирующие исходный код, могут использовать дополнительные предварительно обработанные C-файлы.
За исключением использования некоторого пользовательского пространства POSIX (Cygwin или что-то еще).
Требуется немного доработки, но разве это не та портативность для вас!
Сборки Windows для Flex 2.5.35 существуют, но, к сожалению, они не являются автономными. Вы можете скачать сборку MINGW здесь, а сборку Cygwin здесь; см. также другой вопрос stackru. Каждая сборка требует, чтобы было установлено соответствующее ядро (MINGW или Cygwin).