Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 编译器对Boost.Build重要吗?_C++_Boost - Fatal编程技术网

C++ 编译器对Boost.Build重要吗?

C++ 编译器对Boost.Build重要吗?,c++,boost,C++,Boost,我希望在Windows上为Android构建boost的序列化库。我已经下载了Android NDK r8d和boost 1.53 此过程中的第一步是安装boost.build,以获得可用于构建库的bjam或b2可执行文件 所以我转到boost_1_53_0/tools/build/v2并运行boostrap.bat,如下所示: 但它失败了 “cl”未被识别为内部或外部命令 bootstrap.log表明脚本正在使用msvc。通过谷歌搜索这个问题,我找到了一些解决方案,建议我尝试将GCC添加到路

我希望在Windows上为Android构建boost的序列化库。我已经下载了Android NDK r8d和boost 1.53

此过程中的第一步是安装boost.build,以获得可用于构建库的bjam或b2可执行文件

所以我转到boost_1_53_0/tools/build/v2并运行boostrap.bat,如下所示:

但它失败了

“cl”未被识别为内部或外部命令

bootstrap.log表明脚本正在使用msvc。通过谷歌搜索这个问题,我找到了一些解决方案,建议我尝试将GCC添加到路径中,并将GCC附加到bootstrap命令中

现在,我还没有安装minGW。但是,我不想使用mingwgcc,因为这不是我构建boost库或代码的目的;我将使用Android NDK提供的GCC


我认为构建Boost.Build时使用哪种编译器是重要的,这一假设正确吗?如果是,我如何克服这个问题?将NDK编译器位置添加到Path并尝试使用arm-linux-AndroidABI-g++进行引导无法工作;引导日志显示它不是受支持的工具集,我应该使用mscv、gcc等。

您应该将NDK工具链添加到user-config.jam,并在
bjam
行中选择此工具集。请看地图


更新:您可以使用MSVC构建
bjam
,然后使用它调用Android NDK工具集。

您在该链接中链接的解决方案实际上是我遇到这个问题的原因。尝试从boost根目录运行b2或bjam是无法识别的命令。Boost的文档建议运行build/v2引导程序来构建b2并将其添加到Path。这样做需要我提供BooTrasp.BAT和C++编译器,这就引出了这个问题。你介意详细说明或纠正我错误的假设吗?@wespaugh啊,对不起,我误解了你的问题。您应该从boostroot而不是build/v2运行booststrap.bat。至少我一直都是这么做的,到目前为止效果很好。谢谢,我想这回答了我的问题。如果您已经用默认编译器(而不是“BootStruP.GCC”)进行引导,那么B2和BJAM将使用MSVC或其他系统C++编译器构建,而不是Android系统。所以,我的问题的答案应该是:“不,你可以用任何可用的C++编译器来构建B2和BJAM,并且通过修改用户配置文件。非常感谢。一旦我测试过它,我会把它标记为一个答案。