使用ndk-r4b编译x264
转载:http://blog.csdn.net/zgyulongfei/article/details/7440254
步骤: 1,将x264压缩包解压,假设解压后的目录为libx264。
2,在libx264目录下新建一个脚本文件myconfig.sh,然后将里面的代码贴到myconfig.sh里面。
脚本如下:
# !/bin/sh export ARM_ROOT=/home/frank/android-ndk-r4b export ARM_INC=$ARM_ROOT/build/platforms/android-8/arch-arm/usr/include/ export ARM_LIB=$ARM_ROOT/build/platforms/android-8/arch-arm/usr/lib/ export ARM_TOOL=$ARM_ROOT/build/prebuilt/linux-x86/arm-eabi-4.4.0 export ARM_LIBO=$ARM_TOOL/lib/gcc/arm-eabi/4.4.0 export PATH=$ARM_TOOL/bin:$PATH export ARM_PRE=arm-eabi ./configure --disable-gpac --extra-cflags=" -I$ARM_INC -fPIC -DANDROID -fpic -mthumb-interwork -ffunction-sections -funwind-tables -fstack-protector -fno-short-enums -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ -Wno-psabi -march=armv5te -mtune=xscale -msoft-float -mthumb -Os -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 -DANDROID -Wa,--noexecstack -MMD -MP " --extra-ldflags="-nostdlib -Bdynamic -Wl,--no-undefined -Wl,-z,noexecstack -Wl,-z,nocopyreloc -Wl,-soname,/system/lib/libz.so -Wl,-rpath-link=$ARM_LIB,-dynamic-linker=/system/bin/linker -L$ARM_LIB -nostdlib $ARM_LIB/crtbegin_dynamic.o $ARM_LIB/crtend_android.o -lc -lm -ldl -lgcc" --cross-prefix=${ARM_PRE}- --disable-asm --host=arm-linux --disable-shared
3,将第一句配置 export ARM_ROOT=/home/frank/android-ndk-r4b 改成你ndk-r4b的路径。
4,打开终端,并将终端定位到libx264的目录下,输入 sudo sh ./myconfig.sh 5,当提示可以运行make的时候,输入make
6,如果程序可以很正常的编译,那么恭喜你,你已经成功了,你可以不用看下面的内容了;如果输入make之后,看到这些信息:/bin/sh:arm-eabi-gcc:未找到命令,那么你和我一样遇到了这个问题,请继续看第7步。
7,在终端输入: sudo gedit /etc/profile ,在打开的文本中定位到文件末尾,输入以下脚本 #set arm-eabi-gcc environment export ARM_EABI_GCC=/opt/java/ndk/android-ndk-r4b/build/prebuilt/linux-x86/arm-eabi-4.4.0/bin export PATH=$ARM_EABI_GCC:$PATH 注意:ARM_EABI_GCC中的/opt/java/ndk/android-ndk-r4b是我ndk-r4b的路径,你要根据自己ndk路径修改! 保存后关闭文本。这一步的目的是为arm-eabi-gcc添加环境变量。
8,上一步修改的配置需要重启电脑才能生效,为了能够使其立即生效,需要在终端输入:source /etc/profile,接着输入:echo $PATH 查看ARM_EABI_GCC的路径是否有在输出的内容中,如果有,则看第9步,否则认真检查,重新配置一下环境变量。
9,环境变量配置好了之后,输入命令:make,如果不再提示说arm-eabi-gcc未找到命令而且看到程序正在编译,那么恭喜你,你将成功编译libx264.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构