NDK编译Android上运行的C可执行程序
2014-03-03 11:12
288 查看
大部分讲到NDK编译的都是针对编译动态静态库的,有些特殊的需求需要编译成可执行文件,所以在此记录一下
本文基于win7
首先NDK的目录需要加到系统路径中去,这样ndk-build才能正常调用,ndk-build本身是一个脚本,依赖于jni文件夹,所以你的程序必须放在jni目录下,然后必须得一个Android.mk的文件
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE
:= helloworld
LOCAL_SRC_FILES := helloworld.c
include $(BUILD_EXECUTABLE)
这样编译出来的程序就是armeabi的可执行程序了,默认的都使用armeabi,如果想编译基于其他平台,可以在本来创建一个Application.mk文件指明目标平台
exp:
APP_ABI := x86
貌似如果修改好application.mk也可以做到不基于jni目录,以后研究下.
ndk-build就会生成基于x86的bin文件了
ndk-build 基本使用:
ndk-build clean :清除项目
ndk-build V=1 :编译的时候显示详细信息
当然也可以不使用ndk-build来编译,而直接使用ndk中的交叉编译器的,这个就需要设置SYSROOT了,就是运行的android的api级别了
exp(win7 64bit):
d:\Android\android-ndk-r9c\toolchains\arm-linux-androideabi-4.8\prebuilt\windows-x86_64\bin\arm-linux-androideabi-gcc --sysroot=d:\Android\android-ndk-r9c\platforms\android-12\arch-arm
-o hw helloword.c
本文基于win7
首先NDK的目录需要加到系统路径中去,这样ndk-build才能正常调用,ndk-build本身是一个脚本,依赖于jni文件夹,所以你的程序必须放在jni目录下,然后必须得一个Android.mk的文件
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE
:= helloworld
LOCAL_SRC_FILES := helloworld.c
include $(BUILD_EXECUTABLE)
这样编译出来的程序就是armeabi的可执行程序了,默认的都使用armeabi,如果想编译基于其他平台,可以在本来创建一个Application.mk文件指明目标平台
exp:
APP_ABI := x86
貌似如果修改好application.mk也可以做到不基于jni目录,以后研究下.
ndk-build就会生成基于x86的bin文件了
ndk-build 基本使用:
ndk-build clean :清除项目
ndk-build V=1 :编译的时候显示详细信息
当然也可以不使用ndk-build来编译,而直接使用ndk中的交叉编译器的,这个就需要设置SYSROOT了,就是运行的android的api级别了
exp(win7 64bit):
d:\Android\android-ndk-r9c\toolchains\arm-linux-androideabi-4.8\prebuilt\windows-x86_64\bin\arm-linux-androideabi-gcc --sysroot=d:\Android\android-ndk-r9c\platforms\android-12\arch-arm
-o hw helloword.c
相关文章推荐
- NDK编译Android字符界面的可执行程序
- 利用 CMake 和 NDK 交叉编译 Android 下的可执行程序
- 编译一个可以在Android系统上运行的可执行程序
- NDK编译Android字符界面的可执行程序
- ndk编译android上运行的c程序
- NDK编译Android字符界面的可执行程序
- 【ndk】直接使用ndk提供的arm-linux-androideabi-gcc编译android可执行程序
- NDK编译Android字符界面的可执行程序
- 高通snapdragon平台下编译生成运行Android可执行程序小白教程
- android-ndk-r6编译运行NDK例子
- Android JNI 编译正确 但是提示程序有错误无法运行 而且还看不到任何错误提示 的解决方法
- 编写在Android的Linux系统中直接运行的可执行程序
- CGYWIN 编译的可执行程序在WINDOWS平台中运行时,解决system函数不能使用的问题
- NDK-在android程序运行时打LOG
- 在windows直接运行Qt编译出来的可执行程序出现了如下提示错误: this application has requested the runtime to terminate it an unu
- Android NDK-r5 成功运行编译运行第一个NDK程序
- android运行C程序以及C程序在android下的编译
- ffmpeg 编译好的库文件和可执行程序----for android
- Android开发实践:在任意目录执行NDK编译
- ANDROID NDK实践开发系列--(01) 使用ndk编译c可执行程序