现在的位置: 首页 > 综合 > 正文

ubuntu android交叉编译c程序 ndk

2017年03月24日 ⁄ 综合 ⁄ 共 849字 ⁄ 字号 评论关闭

转自: http://blog.chinaunix.net/uid-20718384-id-3324194.html

分类: LINUX

环境:ubuntu 12.04 x64

1. 下载ndk

  1. wget http://dl.google.com/android/ndk/android-ndk-r8b-linux-x86.tar.bz2
  2. tar xfj android-ndk-r8b-linux-x86.tar.bz2

2. 设置环境变量

  1. export PATH=/home/android/android-ndk-r8b:$PATH

3. helloworld project结构

  1. mkdir hello
  2. cd hello
  3. mkdir jni
  4. cd jni

vi hello.c:

  1. // hello.c
  2. #include <stdio.h>
  3. int main(int argc, char
    *argv[])
  4. {
  5.     printf("hello\n");
  6.     return 0;
  7. }

vi Android.mk:

  1. // Android.mk
  2. LOCAL_PATH:= $(call my-dir)
  3. include $(CLEAR_VARS)
  4. LOCAL_SRC_FILES:= hello.c
  5. LOCAL_MODULE:= hello
  6. LOCAL_FORCE_STATIC_EXECUTABLE := true
  7. include $(BUILD_EXECUTABLE)

4. 编译(生成可执行文件在../libs/armeabi/)

  1. ndk-build

5. 传到手机上运行

  1. cd ../libs/armeabi
  2. adb push hello /sdcard/hello
  3. adb shell
  4. su
  5. cd /sdcard
  6. cp hello /data
  7. chmod 755 hello
  8. ./hello

在sdcard下面执行时,会出现permission denied,移动到/data目录下,添加执行权限后,可以正常执行。

参考:http://leave001.blog.163.com/blog/static/16269129320111128113217384/

抱歉!评论已关闭.