构建 STLport NDK r5/ Android 时出现问题
我正在尝试为 Android 构建 STLport。我执行了以下步骤,但它们不起作用:
1 - 使用以下命令克隆 STLport 存储库:
git clone git://stlport.git.sourceforge.net/gitroot/stlport/stlport
2 - 使用以下命令配置环境:
./configure --target=arm-eabi --with-extra-cxxflags="-fshort-enums"
--with-extra-cflags="-fshort-enums"
3 - 从 src 目录构建它使用
make SYSROOT"{MY NDK path}/platforms/android-5/arch-arm/" release-static
但我收到以下错误:
In file included from ../stlport/stl/_alloc.h:45,
from ../stlport/memory:29,
from dll_main.cpp:41:
../stlport/stl/_new.h:45:24: error: new: No such file or directory
In file included from ../stlport/stl/_limits.h:36,
from ../stlport/limits:29,
from dll_main.cpp:48:
../stlport/stl/_cwchar.h:26:30: error: cstddef: No such file or directory
In file included from ../stlport/stl/_utility.h:35,
from ../stlport/utility:35,
from dll_main.cpp:40:
../stlport/type_traits:889: error: 'declval' was not declared in this scope
../stlport/type_traits:889: error: expected primary-expression before '>' token
../stlport/type_traits:889: error: expected primary-expression before ')' token
../stlport/type_traits:889: error: 'declval' was not declared in this scope
../stlport/type_traits:889: error: expected primary-expression before '>' token
../stlport/type_traits:889: error: expected primary-expression before ')' token
../stlport/type_traits:889: error: ISO C++ forbids declaration of 'decltype' with no type
../stlport/type_traits:889: error: ISO C++ forbids in-class initialization of non-const static member 'decltype'
../stlport/type_traits:889: error: template declaration of 'int std::tr1::detail::decltype'
../stlport/type_traits:942: error: ISO C++ forbids declaration of 'decltype' with no type
../stlport/type_traits:942: error: ISO C++ forbids in-class initialization of non-const static member 'decltype'
../stlport/type_traits:942: error: template declaration of 'int std::tr1::detail::decltype'
make: *** [obj/arm-eabi-gcc/so/dll_main.o] Error 1
是否有我缺少的包含目录或配置?
谢谢,
塞尔吉奥
I'm trying to build STLport for Android. I got the following steps, but they are not working:
1 - Clone STLport repository using:
git clone git://stlport.git.sourceforge.net/gitroot/stlport/stlport
2 - Configure environment using :
./configure --target=arm-eabi --with-extra-cxxflags="-fshort-enums"
--with-extra-cflags="-fshort-enums"
3 - From src directory build it using
make SYSROOT"{MY NDK path}/platforms/android-5/arch-arm/" release-static
But I got the following errors:
In file included from ../stlport/stl/_alloc.h:45,
from ../stlport/memory:29,
from dll_main.cpp:41:
../stlport/stl/_new.h:45:24: error: new: No such file or directory
In file included from ../stlport/stl/_limits.h:36,
from ../stlport/limits:29,
from dll_main.cpp:48:
../stlport/stl/_cwchar.h:26:30: error: cstddef: No such file or directory
In file included from ../stlport/stl/_utility.h:35,
from ../stlport/utility:35,
from dll_main.cpp:40:
../stlport/type_traits:889: error: 'declval' was not declared in this scope
../stlport/type_traits:889: error: expected primary-expression before '>' token
../stlport/type_traits:889: error: expected primary-expression before ')' token
../stlport/type_traits:889: error: 'declval' was not declared in this scope
../stlport/type_traits:889: error: expected primary-expression before '>' token
../stlport/type_traits:889: error: expected primary-expression before ')' token
../stlport/type_traits:889: error: ISO C++ forbids declaration of 'decltype' with no type
../stlport/type_traits:889: error: ISO C++ forbids in-class initialization of non-const static member 'decltype'
../stlport/type_traits:889: error: template declaration of 'int std::tr1::detail::decltype'
../stlport/type_traits:942: error: ISO C++ forbids declaration of 'decltype' with no type
../stlport/type_traits:942: error: ISO C++ forbids in-class initialization of non-const static member 'decltype'
../stlport/type_traits:942: error: template declaration of 'int std::tr1::detail::decltype'
make: *** [obj/arm-eabi-gcc/so/dll_main.o] Error 1
Is there any include dir or configuration I´m missing?
Thanks,
Sergio
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
Android NDK r5 现在支持 STL,只需将
APP_STL := stlport_static
添加到您的Android.mk
文件中,APP_STL
变量的有效选项为:请注意,只有
gnustl_static
变体支持异常。Android NDK r5 now has STL support, just add
APP_STL := stlport_static
to yourAndroid.mk
file, valid options forAPP_STL
variable are;Note that only
gnustl_static
variant supports exceptions.我已经设法使用 STLPort GIT 存储库在 Android NDK R3 上编译 STL-Port。然而,一些“适应”是必要的。您可以找到有关该过程的说明
希望有帮助。
I've manage to compile STL-Port on Android NDK R3 using STLPort GIT repository. A few "adaptations" are necessary however. You can find a description on the procedure here. It should work for NDK R5 too.
Hope that helps.
git 上的最后一个版本似乎已损坏。尝试使用以前的版本(我使用的是 2010 年 12 月 1 日星期三的版本,效果很好)。
The last version on git seems to be broken. Try use a previous version (I've used the one from Wed, Dec 1st 2010 and it worked fine).