您可以通过两种方式为Android构建传统的控制台程序.
>使用ndk-build系统.
您需要创建两个额外的文件:Application.mk:
APP_ABI := armeabi-v7a
APP_PLATFORM := android-16
APP_STL := stlport_static
NDK_TOOLCHAIN_VERSION := 4.8
Android.mk:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE :=
LOCAL_LDLIBS := -llog -lm # whatever libs you need
LOCAL_CFLAGS := -O3 -UNDEBUG # so on
LOCAL_C_INCLUDES :=
LOCAL_SRC_FILES :=
include $(BUILD_EXECUTABLE) # build executable instead of library
前者描述目标ABI,目标android级别,STL实现并选择构建工具链.后者本身就是一个简单的makefile,它不应该让人困惑.有关详情,请参阅here
然后你可以用下一个命令开始构建:
$ndk-build NDK_PROJECT_PATH=path/to/intermediate/results/dir NDK_LIBS_OUT=path/to/output/dir APP_BUILD_SCRIPT=path/to/Android.mk NDK_APPLICATION_MK=path/to/Application.mk
另请注意,ndk-build默认会添加一些标志.要检查它 – 在上面的命令行中添加V = 1.
>使用独立工具链.
如果您已经为项目构建了系统并且只需要交叉编译,那么这种方法可能很有用.准备独立的toochain运行,例如下一个:
$NDK/build/tools/make-standalone-toolchain.sh --arch=arm --platform=android-21 --install-dir=/tmp/my-android-toolchain
现在导出工具路径:
$export PATH=/tmp/my-android-toolchain/bin:$PATH
$export CC=arm-linux-androideabi-gcc
$export CXX=arm-linux-androideabi-g++
更多信息here.