Когда будет доступна новая версия flex для Windows?
-
18-09-2019 - |
Вопрос
я использую гибкий (лексический анализатор, а не Adobe Flex) в проекте.Однако я хочу иметь возможность компилировать и на платформах Windows, но версия для WindowsСамая последняя версия — только 2.5.4a, поэтому мой файл для версии 2.5.35 не скомпилируется.И нет, я не могу перейти на самую высокую поддерживаемую версию Windows.
Кто-нибудь знает о планах по обновлению версии для Windows или у вас есть предложения по компиляции для Windows?
Решение
Вы можете задать вопрос в списке рассылки или втягиваться в проекте 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 здесь;видеть еще один вопрос о stackoverflow.Каждая сборка требует установки соответствующего ядра (MINGW или Cygwin).