使用Bazel为x86(32位)编译C++项目

3

我有一个使用Bazel构建的C++项目,在我的机器上默认为64位Windows构建。然而,我想创建一个32位可执行文件,根据文档,这是被支持的。

我尝试了以下命令:

bazel build :knusperli --platforms @bazel_tools//platforms:x86_32

目标@bazel_tools//platforms:x86_32被引用为平台,但未提供PlatformInfo。
bazel build :knusperli --cpu i386_windows

错误: 找不到适用于cpu 'i386_windows'的工具链。

我之前以为,既然Visual Studio能够编译32位可执行文件,那么在Bazel中也很容易实现,但是我找不到任何有关如何实际操作的信息。

2个回答

1

3
我已经看到这两篇文章了,但对于只想编译一个项目的人来说,似乎一切都很复杂。我能否在某个地方找到x86的CROSSTOOL文件?对我来说,好像没有人考虑过为x86构建。 - IS4
抱歉,我不知道有任何例子。很遗憾,我们没有能力支持x86。 - László

0

自从最初的问题被提出以来,已经有更新使得可以更改构建二进制文件的目标架构为x86(32位),而无需指定CROSSTOOL文件。这可以通过使用值为x64_x86_windows--cpu构建选项来实现。

因此,在您的特定情况下,您可以使用以下命令构建二进制文件:

bazel build :knusperli --cpu=x64_x86_windows

谢谢您的更新。我不再拥有原始项目,但我相信它对某些人会有用。 - IS4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接