64位 CentOS NDK 编译 FFMPEG

Android NDK 是运行于Android 平台上的Native Development Kit 的缩写。Android 应用开发者可以通过NDK 调用C 或C++ 本地代码。

NDK的作用:

  1. 代码的保护,由于apk的java层代码很容易被反编译,而C/C++库反汇难度较大。
  2. 在NDK中调用第三方C/C++库,因为大部分的开源库都是用C/C++代码编写的。
  3. 便于移植,用C/C++写得库可以方便在其他的嵌入式平台上再次使用。

下面是NDK的安装配置过程。

环境:Ubuntu10.10(NDK只能在Linux下安装) 已安装好Android开发环境。

1.下载

国内无法访问到google的相关页面,但可以直接通过下面的地址下载。

http://dl.google.com/android/ndk/android-ndk-r8b-linux-x86.tar.bz2

下载地址:http://www.cnblogs.com/yaotong/archive/2011/01/25/1943615.html

2.解压

个人习惯把东西放在 /usr/local/lib文件夹下面。

要用到的命令:

//复制文件  
cp android-ndk-r8b-linux-x86.tar.bz2 /usr/local/lib  
//解压文件  
tar jxvf android-ndk-r8b-linux-x86.tar.bz2  
//修改权限  
chmod 777 android-ndk-r8b -R

3.修改环境变量

终端运行:gedit  ~/.bashrc

将下面的语句加入

#NDK
setting  
NDK_ROOT=/usr/local/lib/android-ndk-r8b  
export NDK_ROOT

保存,终端运行:source ~/.bashrc

使之立即生效。

在终端运行:echo $NDK_ROOT

若正确打印了NDK的路径,说明环境变量修改成功。

4.测试

cd 进入android-ndk-r8b/samples/hello-jni,然后在终端运行ndk的编译脚本:

sudo
/usr/local/lib/android-ndk-r8b/ndk-build

若结果如下图,则ndk安装成功。

./configure --prefix=/zwjinfo/ffmpeg/dist --enable-cross-compile --enable-static --enable-shared --enable-gpl  --disable-encoders

--disable-muxers --disable-filters --arch=arm --cpu=armv7-a

--enable-memalign-hack --disable-symver --enable-asm --enable-neon --cross-prefix=/zwjinfo/ndkr10/android-ndk-r10/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-

--sysroot=/zwjinfo/ndkr10/android-ndk-r10/platforms/android-L/arch-arm --sysinclude=/zwjinfo/ndkr10/android-ndk-r10/platforms/android-L/arch-arm --disable-debug --target-os=linux --extra-cflags=‘-mfloat-abi=softfp -O3 -mfpu=vfpv3-d16 -marm -mthumb‘ --disable-doc

--disable-yasm --enable-pic --enable-small --enable-hardcoded-tables --extra-ldflags=‘-Wl,--fix-cortex-a8 -mthumb‘-march=armv7-a -mfpu=vfpv3-d16 -Os -Ox -mfloat-abi=softfp -mthumb

./configure
--prefix=/zwjinfo/ffmpeg/android/arm
--enable-shared --disable-static --disable-doc --disable-ffserver
--enable-cross-compile --cross-prefix=/zwjinfo/ndkr10/android-ndk-r10/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-
--target-os=linux --arch=arm --sysroot=/zwjinfo/ndkr10/android-ndk-r10/platforms/android-L/arch-arm/
--extra-cflags=‘-Os -fpic -marm‘ --extra-ldflags=

./configure --prefix=/zwjinfo/ffmpeg/dist --enable-cross-compile --enable-static --enable-shared --enable-gpl  --disable-encoders --disable-muxers --disable-filters --arch=arm --cpu=armv7-a --enable-memalign-hack --disable-symver --enable-asm --enable-neon --cross-prefix=/zwjinfo/ndkr10/android-ndk-r10/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi- --sysroot=/zwjinfo/ndkr10/android-ndk-r10/platforms/android-L/arch-arm --sysinclude=/zwjinfo/ndkr10/android-ndk-r10/platforms/android-L/arch-arm --disable-debug --target-os=linux --extra-cflags=‘-mfloat-abi=softfp -O3 -mfpu=vfpv3-d16 -marm -mthumb‘ --disable-doc --disable-yasm --enable-pic --enable-small --enable-hardcoded-tables --extra-ldflags=‘-Wl,--fix-cortex-a8 -mthumb‘
-march=armv7-a -mfpu=vfpv3-d16 -Os -Ox -mfloat-abi=softfp -mthumb

时间: 2024-11-07 00:07:53

64位 CentOS NDK 编译 FFMPEG的相关文章

64位centos 下编译 hadoop 2.6.0 源码

64位os下为啥要编译hadoop就不解释了,百度一下就能知道原因,下面是步骤: 前提:编译源码所在的机器,必须能上网,否则建议不要尝试了 一. 下载必要的组件 a) 下载hadoop源码 (当前最新的稳定版是2.6.0)地址  http://mirrors.hust.edu.cn/apache/hadoop/common/stable/hadoop-2.6.0-src.tar.gz b) 下载apache-ant (centos自带的ant版本太低,编译过程中会报错)地址: http://mi

64位CentOS上编译 Hadoop 2.2.0

1. 下载Hadoop 2.2.0 源码包,并解压 $ wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.2.0/hadoop-2.2.0-src.tar.gz $ tar zxf hadoop-2.2.0-src.tar.gz 2. 安装下面的软件 $ sudo yum install cmake lzo-devel zlib-devel gcc autoconf automake libtool ncurses-dev

CentOS 6.4 64位 源码编译hadoop 2.2.0

CentOS 6.4 64位 源码编译hadoop 2.2.0 搭建环境:Centos 6.4 64bit 1.安装JDK 参考这里2.安装mavenmaven官方下载地址,可以选择源码编码安装,这里就直接下载编译好的wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.1.1/binaries/apache-maven-3.1.1-bin.zip解压文件后,同样在/etc/profie里配置环境变量vim /etc/profieexport

64位CentOS 6.5编译配置ACE 6.1.0(6.2.0)

系统:CentOS 6.5 64位 ACE版本:6.1.0 假定压缩文件目录为:/usr/local/ 步骤1: 解压下载好的ACE-6.1.0.tar.gz # tar zxvf ACE-6.1.0.tar.gz 出现一个名为:ACE_wrappers的文件夹 步骤2:定义环境变量: 修改/etc/profile 或者 /etc/bashrc # vi /etc/profile 加入以下两行: ACE_ROOT=/usr/local/ACE_wrappers;export ACE_ROOT L

在64位linux上编译32位程序

ld指令有一个选项:--oformat output_format,用于指定输出文件的格式.输入文件./kernel/kernel.o等是elf32格式,当前系统是64位,而ld默认生成的文件格式是elf64-x86-64:因此会出现"ld: warning: i386 architecture of input file `./kernel/kernel.o' is incompatible with i386:x86-64 output"这样的提示.之前,将系统从三墩转移到我自己的

LINUX下使用elasticsearch-jdbc工具实现MySQL同步到ElasticSearch 以及linux 64位centos系统安装jdk1.8

第一步:环境匹配 1)elasticsearch 2.3.3 成功安装部署 2)mysql安装成功,增删改查无误~~. 3)要保证elasticsearch-jdbc的版本要与elasticsearch的版本是一致的(下面的内容会提示下载).否则会报错,无法进行之后的步骤. (例如elasticsearch-jdbc-2.3.3.0-dist.zip(对应的你的elaseticsearh-2.3.3) 4)(linux 64位centos下安装jdk1.8)(我的是CentOS release

anroid ndk编译ffmpeg 引用librtmp libx264

Ffmpeg 无处不在,自然android系统少不了它,折腾了不少时间完成 ndk编译ffmpeg,生成so库中引用了外部库librtmp,libx264.条条大路通罗马, 也许还有别的更好的方法去完成它,我没有仔细研究.我使用的方法完全可以达到我的预期目的. 一.选择编译环境 可以选择windows下cygwin,也可以选择linux系统,我建议选择后者.花了很多时间在cygwin下编译,configure时总是提示链接需要的so文件找不到.无奈 之下转到linux环境下编译.我用的版本是ub

win7在64位系统下编译openssl

以前在笔记本上配置过openssl-0.9.8g版本,今天在公司的台式机上配置死活没配置成功,机器的系统是win7,64位,编译openssl-1.0.1e出现各种莫名的错误,最后无意中编译了1.0.0.a版本编译成功了. 如果出现ml找不到的时候,直接在vc10.0/bin下拷贝就好. 参考文章:http://blog.chinaunix.net/uid-20479991-id-216269.html win7在64位系统下编译openssl,布布扣,bubuko.com

64位RHEL6.4编译Intel mp_linpack

系统及软件版本: RHEL6.4 Intel Cluster Studio XE 2013.1 步骤: 1.安装Intel Cluster Studio XE 2013.1 2.安装软件组Development tools,命令:yum groupinstall "Development tools" -y 3.设置Intel环境变量,命令如下: source /opt/intel/bin/compilervars.sh intel64 source /opt/intel/impi/4