【问题标题】:When will a newer version of flex for windows be available?Windows 版 flex 的更新版本何时可用?
【发布时间】:2010-11-12 00:14:46
【问题描述】:

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

有人知道升级windows版本的计划,或者有建议在windows上编译吗?

【问题讨论】:

    标签: flex-lexer gnuwin32


    【解决方案1】:

    您可以在邮件列表中询问,或参与 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 或其他)。

    需要进行一些调整,但对你来说不是那种可移植性

    【讨论】:

    • +1,我个人只是在 .lex/.y 文件更改时使用 Cygwin。
    • 你能解释一下如何使用 Cygwin 编译使用 Linux 版本的 Flex 吗?我确实尝试将它用于这个项目,但没有走得太远。
    • 如何自己编译 Flex 源代码,或者从 Flex 生成 C 文件? 应该已经有一个 cygwin 版本的 Flex
    【解决方案2】:

    flex 2.5.35 的 Windows 版本确实存在,但不幸的是它们不是独立的。您可以下载 MINGW build here 和 Cygwin build here;见also another stackoverflow question。每个构建都需要安装其各自的(MINGW 或 Cygwin)内核。

    【讨论】:

      猜你喜欢
      • 2020-06-25
      • 1970-01-01
      • 2021-10-01
      • 1970-01-01
      • 2021-08-07
      • 1970-01-01
      • 1970-01-01
      • 2021-09-29
      • 1970-01-01
      相关资源
      最近更新 更多