Android NDK - 在Application.mk中使用APP_STL

时间:2012-01-03 07:41:54

标签: android c++ android-ndk makefile std

我安装了最新的android ndk。我正在使用Eclipse和Sequoyah。

我正在尝试使用stlport或gnustl库中应该找到的各种东西,但我一直收到无法找到的错误。

在JNI / Application.mk中我只有

APP_STL := stlport_shared

我尝试过stlport_static和gnustl_static / shared,但都得到了相同的结果。

在我的Android.mk中我有

LIB_TEST_DIR := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_PATH := $(LIB_TEST_DIR)

LOCAL_MODULE := testmod

LOCAL_MODULE_FILENAME := libtestmod

LOCAL_CPP_EXTENSION := .cxx .cpp .cc

LOCAL_C_INCLUDES := $(LOCAL_PATH)/libtest2/

LOCAL_CFLAGS := -DHAVE_CONFIG_H

LOCAL_SRC_FILES := test.cc

include $(BUILD_SHARED_LIBRARY)

在test.cc包含的头文件中,我有

#include <cassert>
#include <algorithm>
#include <iosfwd>

但是,当我构建时,它找不到任何这些。知道我做错了什么吗?

当我干净的时候,我看到了:

Clean: addiJNI [armeabi]
Clean: stlport_shared [armeabi]
Clean: stlport_static [armeabi]

所以,似乎它知道我想要stlport。如果我使用gnu libs,会发生类似的事情。但是当我构建最简单的例子时,我会得到类似的东西......

jni/test.cpp:4:19: error: cassert: No such file or directory
jni/test.cpp:6:21: error: algorithm: No such file or directory
jni/test.cpp:7:18: error: iosfwd: No such file or directory
make: *** [obj/local/armeabi/objs/addiJNI/addiJNI.o] Error 1

1 个答案:

答案 0 :(得分:2)

这是问题所在,不确定原因。

LOCAL_CPP_EXTENSION:=。cxx .cpp .cc

开头不喜欢.cxx。