安装了android-ndk-r7,并尝试编译.cpp文件.
#include <iostream>
using namespace std;
int main ( int argc, char ** argv)
{
cout <<"Hello World.."<<endl;
}
Run Code Online (Sandbox Code Playgroud)
执行以下命令:进入jni文件夹,然后执行
#ndk-build
Run Code Online (Sandbox Code Playgroud)
得到以下错误:
/home/jelari/Desktop/androidDevelopment/android-ndk-r7/DCF/jni/test1.cpp:1:20: error: iostream: No such file or directory
/home/jelari/Desktop/androidDevelopment/android-ndk-r7/DCF/jni/test1.cpp: In function 'int main(int, char**)':
/home/jelari/Desktop/androidDevelopment/android-ndk-r7/DCF/jni/test1.cpp:8: error: 'cout' was not declared in this scope
/home/jelari/Desktop/androidDevelopment/android-ndk-r7/DCF/jni/test1.cpp:8: error: 'endl' was not declared in this scope
make: *** [/home/jelari/Desktop/androidDevelopment/android-ndk-r7/DCF/obj/local/armeabi/objs/test1/test1.o] Error 1
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么 ?
我的Android.mk文件如下所示:
# A simple test for the minimal standard C++ library
#
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := test1
LOCAL_SRC_FILES := test1.cpp
include $(BUILD_EXECUTABLE)
Run Code Online (Sandbox Code Playgroud)
和Application.mk文件看起来像:
# Build both ARMv5TE and ARMv7-A machine code.
APP_ABI := armeabi armeabi-v7a
Run Code Online (Sandbox Code Playgroud)
请指出错误?
Fre*_*son 11
所以答案很容易在SO上找到,这里是:
默认情况下,C++标准库非常小.
您需要在Application.mk文件中设置APP_STL.
我用:
APP_STL:= gnustl_static
但你可以使用system,stlport_static,stlport_shared或gnustl_static.
它记录在$ NDK/docs/CPLUSPLUS-SUPPORT.html下,它有点隐藏,因为$ NDK/documentation.html索引文件没有列出它.
引自http://groups.google.com/group/android-ndk/browse_thread/thread/983c436239d48704?pli=1
| 归档时间: |
|
| 查看次数: |
9727 次 |
| 最近记录: |