3

我在一个项目中使用flex(词法分析器,而不是 Adob​​e Flex)。但是,我也希望能够在 Windows 平台上编译,但是Windows 版本的最新版本只有 2.5.4a,所以它不会为 2.5.35 版本编译我的文件。不,我无法降级到受支持的最高 Windows 版本。

任何人都知道升级 Windows 版本的计划,或者有关于在 Windows 上编译的建议吗?

4

2 回答 2

4

您可以在邮件列表中询问,或者自己参与Flex 项目。我认为 Flex 的代码库已经有一段时间保持不变,但我不知道谁维护 Windows 端口。在过渡期...

我建议在您的项目中包含生成的源代码。

  1. 在 Linux 系统上生成词法分析器以生成 lex.c/lex.h 文件(或其他文件)
  2. 在构建之前将这些文件包含在您的 Win32 C 源代码中

如果您无法直接访问 Linux 系统,那么虚拟机可能是个好主意。Flex 源代码应该符合一些在 Windows 上构建的 C 标准,但大多数 POSIX 差异都可以很容易地更改为使用 Win32 API。

也许分发为:

/src/source_files.c
/src/lex.l
/src/win32_lex/lex.c

这样,具有现代 flex 的系统可以从 lex 文件生成源代码,并且编译源代码的 Windows 系统可以使用互补的预处理 C 文件。

缺少使用一些用户空间 POSIX(Cygwin 或其他)。

需要进行一些调整,但这对您来说不是那么便携

于 2009-07-18T19:34:05.910 回答
1

flex 2.5.35 的 Windows 版本确实存在,但不幸的是它们不是自包含的。您可以在此处下载 MINGW 构建,并在此处下载Cygwin 构建;另请参阅另一个 stackoverflow 问题。每个构建都需要安装其各自的(MINGW 或 Cygwin)内核。

于 2010-05-08T00:15:04.750 回答