2013-03-13 37 views
0

我期待在Windows上为Android构建boost的序列化库。我已经下载了Android NDK r8d,并且升级了1.53。编译器是否对Boost.Build有用?

在这个过程中的第1步是安装boost.build,让我一个bjam或b2可执行文件,我可以用来建立图书馆。

所以我去boost_1_53_0 /工具/建筑/ v2和运行boostrap.bat,按照指示在这里:http://www.boost.org/doc/libs/1_53_0/more/getting_started/windows.html

和失败。

“CL”不被识别为内部或外部的命令

BOOTSTRAP.LOG表明该脚本使用MSVC。谷歌搜索这个问题,我找到解决方案,建议我尝试将GCC添加到我的路径中,并将GCC附加到引导程序命令。

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

我是否正确地认为编译器Boost.Build的内置是重要的?如果是这样,我该如何克服这个问题?将NDK编译器位置添加到Path并尝试使用arm-linux-androideabi-g ++进行引导不起作用; bootstrap日志说它不是支持的工具集,我应该使用mscv,gcc等。

回答

0

您应该将NDK工具链添加到user-config.jam并在bjam行中选择此工具集。请参阅following question

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

+0

您在该链接中链接的解决方案实际上是使我遇到了这个问题。试图从boost root运行b2或bjam不是一个公认的命令。 Boost的文档建议运行build/v2 bootstrap来构建b2并将其添加到Path中。这样做需要我提供bootstrap.bat与C++编译器,这导致我这个问题。 您是否介意阐述或纠正我错误的假设? – 2013-03-13 16:21:41

+0

@Wes Paugh啊,对不起,我误解了你的问题。您应该从boost root运行booststrap.bat,而不是从build/v2运行。至少我总是这样做,到目前为止效果很好。 – 2013-03-13 16:27:36

+0

谢谢,我认为这回答我的问题。如果你使用默认编译器(而不是“bootstrap.bat gcc”)引导,那么b2和bjam将使用msvc或其他系统C++编译器构建,而不是android之一。所以,我的问题的答案应该是:'不,你可以用任何可用的C++编译器构建b2和bjam,并且在通过修改user-config.jam构建诸如序列化之类的boost库时指定NDK编译器。谢谢!一旦我测试了它,我会标记这个答案。 – 2013-03-13 16:35:08

相关问题