我正在将我的一个项目移植到GCC,因为我需要同时支持x64和x86,所以我使用MinGW-w64项目来实现。
但是,在设置构建环境时,我遇到了问题。我的项目目前使用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,以便根据address-model标志选择正确的工具链?如果不行,我的下一个最佳选择是什么?
编辑:
如果有帮助的话,我正在使用MinGW-w64网站上的rubenvb 4.6.3-1版本的“Personal Builds”文件夹中的构建(我特别使用这些构建,因为我希望尝试让我的代码在Clang下解析——但不编译)。
编辑:
我刚想到的一个解决方案是,在编译之前“手动”设置PATH以指向正确的工具链,但这会给我的构建过程增加额外的复杂性,我希望避免这种情况。理想情况下,它应该像对于MSVC一样容易,但我知道这可能不可能。在最坏的情况下,我认为我刚才提出的方法可以解决问题,并且我只需要添加脚本来正确地设置PATH,然后调用Boost.Build。那将意味着硬编码路径,但我不想这样做...