android 编译控制,你如何编译一个C控制台程序作为Android进程运行?

您可以通过两种方式为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.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值