2

我正在尝试为 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 目录使用

制作 SYSROOT"{MY NDK 路径}/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

我缺少任何包含目录或配置吗?

谢谢,

塞尔吉奥

4

3 回答 3

2

Android NDK r5 现在支持 STL,只需添加APP_STL := stlport_static到您的Android.mk文件中,APP_STL变量的有效选项是;

  • stlport_static
  • stlport_shared
  • gnustl_static

请注意,只有gnustl_static变体支持异常。

于 2010-12-30T13:29:25.463 回答
0

git 上的最后一个版本似乎坏了。尝试使用以前的版本(我使用了 2010 年 12 月 1 日星期三的版本,它运行良好)。

于 2011-01-10T13:22:14.337 回答
0

我已经设法使用 STLPort GIT 存储库在 Android NDK R3 上编译 STL-Port。然而,一些“适应”是必要的。您可以在此处找到有关该过程的说明。它也应该适用于 NDK R5。

希望有帮助。

于 2011-01-26T22:02:03.740 回答