【问题标题】:Using the STL with Android NDK C++将 STL 与 Android NDK C++ 一起使用
【发布时间】:2012-03-16 12:34:29
【问题描述】:

我正在尝试在 Android NDK C++ 文件中使用 STL。我尝试使用 map、vector 和其他各种 stl 类,但我无法编译它,因为它找不到文件。

我的课程标题以:

#pragma once
#include <map>
#include <iostream>
#include <stdexcept>
#include <vector>
#include <set>
#include <list>
#include <algorithm>

我收到以下错误消息:

2>  In file included from jni/../../Classes/Assist/Test.cpp:1:
2>  jni/../../Classes/Assist/Test.h:2:15: error: map: No such file or directory
2>  jni/../../Classes/Assist/Test.h:3:20: error: iostream: No such file or directory
2>  jni/../../Classes/Assist/Test.h:4:21: error: stdexcept: No such file or directory
2>  jni/../../Classes/Assist/Test.h:5:18: error: vector: No such file or directory
2>  jni/../../Classes/Assist/Test.h:6:15: error: set: No such file or directory
2>  jni/../../Classes/Assist/Test.h:7:16: error: list: No such file or directory
2>  jni/../../Classes/Assist/Test.h:8:21: error: algorithm: No such file or directory
2>  In file included from jni/../../Classes/Assist/Test.cpp:1:

我阅读了各种帖子并在 application.mk 文件中尝试了“APP_STL := stlport_static”和“APP_STL := gnustl_static”,但没有成功。

有谁知道我怎样才能让它工作?

【问题讨论】:

标签: android c++ stl android-ndk


【解决方案1】:

我有同样的问题,然后意识到我需要把: APP_STL := stlport_static

在 Application.mk 中,而不是 Android.mk ... doh

然后我需要添加: ${ANDROID_NDK_ROOT}\sources\cxx-stl\stlport\stlport

到 Eclipse 中的包含路径,使其不会在 UI 中抱怨错误

【讨论】:

  • 抱歉对我不起作用。相同的构建在 Linux 环境中运行良好,但在 Windows 中失败。仍在寻找答案。
  • 最好把 c++_shared 放在 apk 中,以便在 apk 中包含 libcpp_shared.so
【解决方案2】:

似乎错误是某种损坏的 NDK。我重新安装了它(删除、解压缩),现在它可以工作了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-19
    • 2012-03-25
    • 1970-01-01
    • 1970-01-01
    • 2017-08-11
    • 2013-08-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多