码迷,mamicode.com
首页 > 其他好文 > 详细

NDK编译可执行文件

时间:2015-08-31 17:43:01      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:

对于 C 应用程序的编译链接,自己编写的 makefile 是件比较困难的事情,我们可以利用 NDK 提供的 build 工具,实现我们的目标。

比如我们以hello.c工程:

#include <stdio.h>
    int main()
    {
    printf("Hello World!\n");
       return 0;
    }

编写Android.mk文件

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE:= helloa
LOCAL_SRC_FILES := hello.c
include $(BUILD_EXECUTABLE)

在当前目录下打开终端运行:ndk-build,出现如下错误:

[D:\ndk\android-ndk-r9d\sources\hellotest]$ ndk-build
Android NDK: Could not find application project directory !    
Android NDK: Please define the NDK_PROJECT_PATH variable to point to it.    
D:\ndk\android-ndk-r9d\build/core/build-local.mk:148: *** Android NDK: Aborting    .  Stop.

解决办法有两种:

1)在该路径下创建一个空白的AndroidManifest.xml文件

<?xml version="1.0" encoding="utf-8"?>

<manifest/>

再次执行ndk-build,可顺利编译出可执行文件,adb push到android平台上执行:

[D:\ndk\android-ndk-r9d\sources\hellotest]$ ndk-build
[armeabi] Compile thumb  : helloa <= hello.c
[armeabi] Executable     : helloa
[armeabi] Install        : helloa => libs/armeabi/helloa

2)根据提示,可进行NDK_PROJECT_PATH赋值指定:

ndk-build -B NDK_PROJECT_PATH=.

再次执行ndk-build,同样可顺利编译出可执行文件,adb push到android平台上执行:

[D:\ndk\android-ndk-r9d\sources\hellotest]$ ndk-build
[armeabi] Compile thumb  : helloa <= hello.c
[armeabi] Executable     : helloa
[armeabi] Install        : helloa => libs/armeabi/helloa


NDK编译可执行文件

标签:

原文地址:http://my.oschina.net/896698/blog/499584

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!