Android.mk
See https://developer.android.com/ndk/guides/android_mk
hello
./code/android_mk/hello/jni/foo.cc
1#include <iostream>
2int main() { std::cout << "hello world\n"; }
./code/android_mk/hello/jni/Android.mk
1LOCAL_PATH := $(call my-dir)
2include $(CLEAR_VARS)
3LOCAL_MODULE := foo
4LOCAL_SRC_FILES := foo.cc
5# include $(BUILD_SHARED_LIBRARY)
6include $(BUILD_EXECUTABLE)
./code/android_mk/hello/jni/Application.mk
1APP_ABI := x86
2APP_STL := c++_shared
APP_STL := c++_shared
is to fix the following errors:
ld: error: undefined symbol: std::__ndk1::cout
To compile:
cd code/android_mk/hello
ndk-build
It will generate two directories in hello
: libs
and obj
..
adb push libs/x86/foo /data/local
adb push libs/x86/libc++_shared.so /data/local
adb shell
cd /data/local
export LD_LIBRARY_PATH=.
./foo