【问题标题】:Generate windows executable from Linux source code?从Linux源代码生成Windows可执行文件?
【发布时间】:2020-08-25 08:11:45
【问题描述】:

我想从Bison 源代码制作 Bison.exe 以在 Windows 上运行它。在 Linux 上我们可以使用 make 来生成 Bison 可执行文件,但我想在 windows 上使用 Bison。

我找不到任何最新版本的 win-Bison,其中大部分是 2.x 版本。因为CVE我需要使用3.5.4或更高版本。

【问题讨论】:

  • MinGW 可以在 Linux 上用于创建 Windows 可执行文件。
  • Bison 是否使用了一些非标准的标头?
  • 请注意,您引用的 CVE 已被澄清以表明它仅适用于 Bison 与不受信任的输入一起使用的情况(例如使用 Bison 分析用户输入的 Web 服务),并且确实不表示 Bison 生成的代码中存在漏洞。
  • 感谢您指出@rici。事实上,已经找到了一个新的CVE,但它只是在 Bison 本身中,而不是在生成的代码中。到这个时候,我已经迁移到他们最近发布的3.7.1v,正如 brc-dd 所指出的那样。这是一个很好的学习,我们处于一个非常旧的版本,有很多弃用。

标签: c++ parsing compilation cross-compiling bison


【解决方案1】:

您可以使用 MSYS2 在 Windows 上使用 bison。这是包裹link。版本3.6.4-1 在那里可用。

快速搜索将我带到了这个video。如果您没有在Windows 上设置MSYS2 的经验,可以参考。

我注意到您使用的是Chocolatey。所以你也可以使用它来安装MSYS2。这是包裹link

如果您在PATH 中有MSYS2C:\tools\msys64;C:\tools\msys64\mingw64\bin;C:\tools\msys64\usr\bin;,如果您使用Chocolatey 以默认设置安装),那么您不需要它的shell 来运行bison。您可以使用任何您喜欢的终端。

编辑:

您可以使用VS-2019 来构建可执行文件本身。这是 git 存储库的 link。当前稳定版本包括bison3.5.0。但由于您需要大于3.5.4 的版本,您可以使用this one 等正在开发的版本。

【讨论】:

  • 我猜对巧克力的提及令人困惑,我们没有使用它,抱歉。由于我们构建环境的限制,我不能使用 MSYS2 或 Cygwin(这会让生活更轻松:)),这就是我寻找可执行文件的原因。不过还是谢谢你的建议。
  • @a11apurva 好的,很抱歉造成误解。我以为您正在使用它,因为您提供了 Chocolatey 包的链接,并且在类似的包中,我看到了您的一个 cmets。 :) 所以基本上你想从源代码本身构建软件?
  • @a11apurva 我在问题中添加了一个编辑。我希望它对你有用。
  • 既然您似乎满足于使用预编译的二进制文件,为什么不按照@brc-dd 的建议在您自己的计算机上构建野牛并将生成的二进制文件复制到您的构建环境中?
  • @brc-dd 这肯定能解决我的问题。非常感谢:)
猜你喜欢
  • 2011-10-14
  • 1970-01-01
  • 2011-02-09
  • 2011-11-09
  • 2017-07-26
  • 1970-01-01
  • 2021-09-26
  • 1970-01-01
相关资源
最近更新 更多