2012-01-03 124 views
0

我安裝了最新的android ndk。我使用Eclipse和Sequoyah。Android NDK - 在Application.mk中使用APP_STL

我想使用stlport或gnustl庫中應該找到的各種東西,但是我總是收到他們找不到的錯誤。

在JNI/Application.mk我只有

APP_STL := stlport_shared 

我試圖stlport_static和gnustl_static /共享,都得到相同的結果。

在我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庫,會發生類似的事情。但是當我構建最簡單的例子時,我會得到類似...

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 
+0

您使用的是Eclipse嗎? – Lennart 2012-01-04 08:41:52

+0

我使用Eclipse和Sequoyah。 – corbin 2012-01-04 14:55:07

+0

呃,重讀那個,對不起。您是否已將stlport包含的路徑添加到項目的C/C++選項中? – Lennart 2012-01-04 15:48:24

回答

2

這是問題所在,不知道爲什麼。

LOCAL_CPP_EXTENSION:= .CXX的.cpp .CC

它並沒有像一開始.CXX。

+0

LOCAL_CPP_EXTENSION必須只有一個字:) – Viren 2012-05-23 06:35:17