- 浏览: 506941 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
lin_kk:
最近正在学,请问LZ有源码事例吗,如果有能发一下我邮箱吗,万分 ...
使用libgdx及其中的box2d 2.1的注意事项 -
ahong520:
编译都通不过
ffmpeg对音频解码的一般步骤 -
辽东小小:
yajun_soft 写道XXX@XXX:~$ adb she ...
adb push的Permission denied -
cdtdx:
好文, 相当不错啊. 收了.
什么是app2sd,app2ext,data2ext?app移动到SD卡哪里去了? /mnt/asec /mnt/secure -
dickycat:
学习了,最近正在学这一块,年纪大了,学起来有点吃亏!
使用libgdx及其中的box2d 2.1的注意事项
使用ndk或linux下独立交叉编译(ffmpeg)
- 博客分类:
- Android
1、ndk 编译程序 helloworld –Application.mk –project –jni –Android.mk –helloworld.c Application.mk: Android.mk: helloworld.c 在NDK_ROOT/apps/helloworld/project/libs/armeabi/目录有生成了“helloworld”可执行程序。到这里编译已经完成了。 cd NDK_ROOT/apps/helloworld/project/libs/armeabi adb push /data/helloworld adb shell chmod 777 /data/helloworld/helloworld /data/helloworld/helloworld 如果没有权限问题,这里就OK了. 如果用windows cmd命令行下使用adb连接虚拟机会有权限问题,;我试着在 虚拟机上/Dev Tools/Terminal Emulator上用命令执行,也没有权限执行程序.可能只有cygwin使用的是root吧. 2、用传统交叉编译方式--也可以 * 在ubuntu 或标准linux下下载arm交叉编译工具 http://www.codesourcery.com/sgpp/lite/arm/portal/subscription?@template=lite 这个自己.做吧,别忘记export * 编码,文件结构如下 --test Makefile include --pchar.h src --main.c --pchar.c 代码分别如下: //*********************************************main.c***********************************/ /* int main(int argc,char *argv[]) //void _start(int argc, char **argv) { exit( main(argc, argv) ); } //*********************************************pchar.c***********************************/ #include "pchar.h" //*********************************************pchar.h***********************************/ #include <stdio.h> //*********************************************Makefile***********************************/ CC= arm-none-linux-gnueabi-gcc all:$(EXE) #CFLAGS= -Wall -O2 #LIB = -static -llib #LIBPATH = -L./lib LIB = -static $(EXE):./src/*.c clean: ***************************************************************************************************************** 注:-static一定要有. ok .. make 就可以了, $file test 查看一下生成的可执行文件是不是arm 下,static的. -static选项在这里是必须的,不然android平台就不运行此程序。 这也说明了此平台上的C/C++库是不能被 C/C++程序动态连接的 。 进入tools目录,用adb工具下载到android平台,放到/data/data目录。 [cmz@KD1 jni]$ file test 将生成的文件按(1)传入到虚拟机运行.就可以看到了. 3、ffmpeg移植到android.可以说用上面同样的方法。只是注意,要staitc的方式编译将生成的bin/ffmpeg二进制文件 ,传到虚拟机。 移到板子上 ffmpeg -i test.avs test.yuv test.avs为测试文件. 上面的应用程序在编译时必须加上-static选项,也就是在编译时将函数都静态编译到程序中了,运行时不用再动态连接。如果不加此选项,在 android平台上就不让运行。 经过测试,将自己写的库放到/system/lib目录下,然后写个主程序来动态连接,也是无法运行。 看来此平台做了限制,不让C/C++的程序运行时动态连接到这些C/C++库。
* Copyright (C) 2009 The Android Open Source Project
*
mu maytures -- two test function
*
*/
//#include <stdio.h>
#include "pchar.h"
{
printf("===begin=!\n");
pchar();
printf("===end=!\n");
return 0;
}
int pchar()
{
printf("I'm char.=!\n");
return 0;
}
int pchar();
EXE=test
INCLUDE = -I ./include
# $(CROSS_COMPILE)gcc -o $@ hello.c
$(CC) ./src/*.c -o $@ $(INCLUDE) $(LIB)
rm -rf test
test: ELF 32-bit LSB executable, ARM, version 1 (SYSV), for GNU/Linux 2.6.14, statically linked, for GNU/Linux 2.6.14, not stripped
发表评论
-
编译XT720 gingerbread
2013-05-04 11:18 822在android根目录下执行". build/env ... -
编译mx 内核成功
2013-03-18 17:48 821转 : http://hi.baidu.com/_xi ... -
ubuntu下面找不到ZTE V880设备
2012-12-06 16:22 775两种方法:第一种方法是你连上你的手机,重启电脑,再adb de ... -
Android中解决图像解码导致的OOM问题
2012-10-01 18:41 793http://7dot9.com/2011/08/androi ... -
编译Android下纯C的静态程序,undefined reference to raise
2012-07-08 23:28 2332尝试在Android下编译纯C的静态程序,执行gcc -v - ... -
开发Android下纯C程序时,打开时提示not found
2012-07-08 20:09 1339这个问题烦了我一天了..郁闷.本人想试验一下使用ndk里面的t ... -
NDK报错:make: *** 没有规则可以创建“obj/local/armeabi/objs/a/a.o”需要的目标“/a.c”。 停止。
2012-07-05 21:02 2139android开发用ndk编译so库时,有时直接从别的地 ... -
adb push的Permission denied
2012-05-30 17:19 3576遇到的问题是 zhanglanyun@zhanglan ... -
adb pull失败问题解决方法
2012-05-30 17:03 2109问题:使用adb pull命令从android系统中读取文件失 ... -
关于app2sd、a2sd、data2sd、a2sd+的区别的解释
2012-05-17 11:47 1026因为看到很多机友对这个概念不理解。首先解释一下这些缩写,全部的 ... -
什么是app2sd,app2ext,data2ext?app移动到SD卡哪里去了? /mnt/asec /mnt/secure
2012-05-17 10:56 3324Google Android手机的软件为了安全性和稳定性 ... -
android 如何自定义ProgressBar
2012-04-22 15:39 1893原文:http://blog.sina.com.cn/s/bl ... -
修改MAC,没有nvs_map.bin时该怎么做
2012-04-10 16:53 1780Basically: nvs_map.bin is what ... -
Android Activity LaunchMode 验证
2012-03-31 11:23 872在Android中,每个Activity有4种LaunchMo ... -
Android改变MAC地址
2012-03-30 13:42 21411.Find out your original MAC ad ... -
C通过JNI 层调用Java的静态和非静态方法
2012-03-26 09:47 39131、主要流程 1、 新建一个测试类TestProv ... -
android-ndk-r7 编译 ffmpeg-0.10
2012-03-18 21:46 4559看了这篇文章 http://blog.sina.com ... -
android2.3 MODIFY_PHONE_STATE
2012-02-27 22:14 3031一直被一些莫名其妙的电话骚扰,而且只响两声就断了,一直 ... -
Androidmanifest.xml里的<uses-feature>
2011-12-27 17:10 1316如果你是一个Android用户,而且你有一个老旧的安装有and ... -
android程序中取得root
2011-10-25 19:42 1023public static boolean runRootCo ...
相关推荐
前提准备 * Android Studio+Cmake+云服务器 * 这里是在阿里云服务器上编译,采用Ubuntu 16.04 64位 * 采用android-ndk-r10e-linux-x86_64.bin编译ffmpeg-2.6.9 * 采用Xshell和Xftp进行服务器的操作
ubuntu下ndk编译ffmpeg0.8.1,详细介绍了如何将ffmpeg移植到linux下,生成的so动态链接库文件可以直接在android里使用。
在NDK9 环境下编译 Android 下的 ffmpeg, 可以编译动态库, 静态库。可以用于Android下h264解码。
arm平台下使用ndk工具交叉编译python,用于android系统;android-arm平台ndk交叉编译python
在Linux下编译FFmpeg+android ndk成功的脚本及so库; 包含sh脚本,和fflib编译成功的zip包
详细的描述了Android NDK下编译ffmpeg开源库的步骤。
针对Android平台编译好的FFmpeg 6.0的动态链接库.so文件,包括armeabi-v7a ,arm64-v8a两个版本.
该资源为NDK编译ffmpeg中的YUV转换BGR代码
编译ffmpeg:最高版本16b,再高的版本编译出错。 编译doubango:编译arm64,16b版本会出错(stderr/stdout)。试了更低版本都不对,干脆不编译这个了。 解压 unzip android-ndk-r16b-linux-x86_64.zip 配置 export...
Android FFmpeg NDK 25.2.9519653 .so编译库 windows 8.1 专业版 msys mingw64 交叉编译完成 FFmpeg 是和这个NDK最新的下载
用Android_NDK编译FFmpeg,RTSP手机视频
ndk编译ffmpeg修改后的configure文件ndk编译ffmpeg修改后的configure文件ndk编译ffmpeg修改后的configure文件ndk编译ffmpeg修改后的configure文件
android-ndk-r8b编译最新ffmpeg步骤详解,包括文字说明和具体代码演示,对想学习或者从事这一项流媒体开发的朋友有很好的帮助
本文简要介绍了如何安装Android NDK的C/C++语言开发套件,并介绍了如何创建一个独立的ARM交叉编译工具链。通过该工具链接可以交叉编译Android上的C语言程序,也可以用来编译Android Linux内核。文中举例介绍了如何...
ffmpeg4.16 ndk21 android 21 版本编译的库,包含 arm-v7a、arm-v8,包含include、动态链接库.so文件。
ubuntu下 编译 ffmpeg for Android 的配置文件,包含编译出 armv7-a 和编译成 armv8-a的配置文件,仅仅这两个文件
ubuntu 14.04 + NDK10d+ffmpeg 3.0编译出来的库和头文件。可以在安卓环境下使用。
linux下的交叉编译工具,NDK工具链
Windows平台下 NDK 提取出来的 Android 平台交叉编译工具 可以直接编译生成Android下的可执行程序,或者库。
上面的压缩包是通过R19C版本的NDK编译过...库采用64位的编译器编译,适用于arm64-v8a平台,如果需要编译arm-v7a的库,可以直接修改目录下的编译脚本,修改NDK的路径和编译器即可编译。 库的编译环境: ubuntu18.04 64位