我目前正在将我的一个项目移植到 GCC,并且我正在使用 MinGW-w64 项目来完成此任务,因为我需要 x64 和 x86 支持。
不过,我在设置构建环境时遇到了问题。我的项目目前使用 Boost C++ 库,为了简化构建过程,我也在我的项目中使用了 Boost.Build(因为它使集成变得简单)。
在 MSVC 下这很好,因为我可以从命令行执行以下操作:
b2 toolset=msvc address-model=32 # compile as 32-bit
b2 toolset=msvc address-model=64 # compile as 64-bit
MinGW-w64 使这个“有问题”,因为 32 位和 64 位工具链位于不同的目录中。(分别为 C:\MinGW32 和 C:\MinGW64)。
是否可以设置 Boost.Build 以根据地址模型标志选择正确的工具链?如果没有,我的下一个最佳选择是什么?
编辑:
如果有帮助,我将使用 MinGW-w64 网站的“个人构建”文件夹中的 rubenvb 4.6.3-1 构建(我特别使用这些构建,因为我希望尝试让我的代码解析 - 但不编译- 在 Clang 下)。
编辑:
我刚刚想到的一个解决方案是在编译之前“手动”设置 PATH 以指向正确的工具链,但是这给我的构建过程增加了一层额外的复杂性,我想避免这种复杂性。理想情况下,我希望它像 MSVC 一样简单,尽管我知道这可能是不可能的。在最坏的情况下,我假设我刚才的建议会起作用,我只需要在调用 Boost.Build 之前添加脚本以正确设置 PATH。这将意味着硬编码一条路径,我不想这样做......