一、废话

最近学习,第一步就是编译.我们需要编译FFmpag,x264,fdk_aac,下面是x264,网上说的很多都是几百年前的,我亲测完美可用

还是那句话 我能力有限,但是我希望我写的东西能够让更多的人能够接受.我也是刚刚接触.做一个记录,也希望能够对其他人有好处.
联系我可以直接评论,也可以加我QQ:2519687025

 二、干货 

 

准备:1.x264的源码

2.cygwin下载,安装,这个网上基本都有.我不讲太多.git cygdrive bash make 这几个都需要下载

3.ndk我现在的版本r9c.最新的现在应该到r9d了.需要的去更新问题不大的.而且注意设置环境变量

我的设置如下: 因为下面的命令要用到,所以没设的就跟我设一样的就好,避免出现不必要的问题

ANDROID_NDK_ROOT  E:\android-ndk-r9c\

名字一样就好,路径还是你自己的.

4.编译脚本.这个脚本自己去理解吧.我也是一知半解--脚本名称:Config.sh

EXTRA_OPTIONS=()
case $OS in
Android)
    GNU_BUILD_OS=linux     EXTRA_OPTIONS+=(
        --extra-cflags=-DANDROID
        --extra-cflags=-gdwarf-
    )     case $ARCH in
    armeabi-v7a*)
        GNU_BUILD_ARCH=armv7-a
        CROSSCOMPILE_PREFIX=arm-linux-androideabi-         TARGET_ARCH=arm         EXTRA_OPTIONS+=(
            --extra-cflags=-mfpu=vfpv3-d16
            --extra-cflags=-mcpu=cortex-a9
        )         ;;
    esac     case $ARCH in
    armeabi-v7a-hard)
        APP_PLATFORM=android-         EXTRA_OPTIONS+=(
            --libm="-lm_hard"
            --extra-cflags=-mhard-float
            --extra-cflags=-D_NDK_MATH_NO_SOFTFP=
            --extra-ldflags=-Wl,--no-warn-mismatch
        )
        ;;
    armeabi-v7a)
        APP_PLATFORM=android-
        ;;
    esac     SYSROOT="${ANDROID_NDK_ROOT}/platforms/${APP_PLATFORM}/arch-${TARGET_ARCH}"
    ;;
Windows)
    ;;
Linux)
    ;;
esac ${X264_SOURCE_DIR}/configure \
    --prefix=/ \
    --sysroot="$SYSROOT" \
    --cross-prefix="$CROSSCOMPILE_PREFIX" \
    --host=$GNU_BUILD_ARCH-$GNU_BUILD_OS \
    "${EXTRA_OPTIONS[@]}" \
    --disable-opencl \
    --enable-pic \
    --bit-depth= \
    --chroma-format= \
    --disable-interlaced \
    --enable-static \
    --disable-lavf \
    --disable-avs \
    --disable-swscale \
    

 三、编译

1.export符号链接 --非常重要

  export CYGWIN="winsymlinks:nativestrict"
.cygwin的环境:
ANDROID_NDK_ROOT=$(cygpath -u "$ANDROID_NDK_ROOT")
ANDROID_ARM_TOOLCHAIN_ROOT=$ANDROID_NDK_ROOT/toolchains/arm-linux-androideabi-4.8/prebuilt/windows/
ANDROID_X86_TOOLCHAIN_ROOT=$ANDROID_NDK_ROOT/toolchains/x86-4.8/prebuilt/windows
export PATH=$PATH:$ANDROID_ARM_TOOLCHAIN_ROOT/bin:$ANDROID_X86_TOOLCHAIN_ROOT/bin
.执行一下命令,编译脚本
TMP=$(cygpath -m "$TMP") \
ARCH=armeabi-v7a \
OS=Android \
ANDROID_NDK_ROOT=$(cygpath -m "$ANDROID_NDK_ROOT") \
X264_SOURCE_DIR=/cygdrive/e/soft/source/x264/x264 \
/cygdrive/e/qupai_code_eclipse/code/ThirdParty/Build/x264/Config.sh
.执行make命令 这里使用的是NDK的make,而不是cygwin的make
"$ANDROID_NDK_ROOT/prebuilt/windows/bin/make" -j8  

注意,里面有些是我自己的脚本的路径,需要自己去替换一下.如:

X264_SOURCE_DIR=/cygdrive/e/soft/source/x264/x264 \           --------这是源码地址
     /cygdrive/e/qupai_code_eclipse/code/ThirdParty/Build/x264/Config.sh ------这是脚本地址

Windows环境下使用cygwin ndk_r9c编译x264的更多相关文章

  1. Windows环境下使用cygwin ndk_r9c编译FFmpeg

     一.废话 最近学习,第一步就是编译.我们需要编译FFmpag,x264,fdk_aac,一步步来.先来讲一下FFmpeg,网上说的很多都是几百年前的,我亲测完美可用 联系我可以直接评论,也可以加我Q ...

  2. Windows环境下的RTKPlot_Qt版本编译时遇到的问题和解决方法

    在使用了 RTKLIB开源包自带的 rtkplot.exe后,知道了它所具有的功能,就想着如何模仿它做出一个 demo.一开始看的是之前下载的 2.4.2版本的 RTKLIB,里面是使用 Delphi ...

  3. Windows环境下使用Cmake ndk编译fdk-aac

     一.废话 最近学习,第一步就是编译.我们需要编译FFmpag,x264,fdk_aac,下面是x264,网上说的很多都是几百年前的,我亲测完美可用 还是那句话 我能力有限,但是我希望我写的东西能够让 ...

  4. Windows环境下使用VS2005编译OpenSSL

    如何Windows环境下,使用VS2005编译OpenSSL,虽然这个问题在Baidu.Google上一堆,但安装中还是遇到些问题,在这里 记录下来希望能帮助大家不要在走弯路.注:我是在WinXP S ...

  5. freeSSHD在windows环境下搭建SFTP服务器

    freeSSHD在windows环境下搭建SFTP服务器 0 建议现在windows环境下安装cygwin,否则在windows环境下cmd模式使用不了sftp去连接,可以利用win scp去测试连接 ...

  6. 编译实战 | 手摸手教你在Windows环境下运行Redis6.x

    原创:微信公众号 码农参上,欢迎分享,转载请保留出处. 哈喽大家好啊,我是没事就愿意瞎捣鼓的Hydra. 不知道有没有小伙伴像我一样,平常开发中用的是windows操作系统,有时候想装点什么软件,一看 ...

  7. Openstack 二次开发之:在windows 环境下编译Openstack-java-sdk

    在windows环境下使用maven对openstack-java-sdk进行编译 编译源文件 下载源代码 git clonehttps://github.com/woorea/openstack-j ...

  8. windows环境下protobuf的java操作{编译,序列化,反序列化}

    google protocol buffer的使用和原理 概况: Protocol Buffers(也就是protobuf)是谷歌的语言中立的.平台中立的.可扩展的用于序列化结构化的数据: windo ...

  9. 【转】Windows环境下Android NDK环境搭建

    原文网址:http://www.metsky.com/archives/525.html 前面介绍Windows下Android 开发环境配置,主要是面向JAVA开发环境,对只做APK上层应用开发人员 ...

随机推荐

  1. [PeterDLax著泛函分析习题参考解答]第6章 Hilbert 空间

    1. 证明满足 (6) 的范数可以由一个内积诱导出来. 这个结论属于 von Neumann. 证明: 以实线性空间为例, 取内积 $$\bex \sex{x,y}=\cfrac{1}{4}[\sen ...

  2. How many ways

    How many ways Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tot ...

  3. Ubuntu配置Android编译环境

    1.Ubuntu安装 VMware安装ubuntu之后,安装Vmware tools: 1.安装完ubuntu后,VMware Workstation菜单:虚拟机-->安装 Vmware Too ...

  4. python 零散记录(六) callable 函数参数 作用域 递归

    callable()函数: 检查对象是否可调用,所谓可调用是指那些具有doc string的东西是可以调用的. 函数的参数变化,可变与不可变对象: 首先,数字 字符串 元组是不可变的,只能替换. 对以 ...

  5. selenium webdriver(2)---页面对象定位

    webdriver的元素定位很灵活,提供了多种定位方式: Id LinkText PartialLinkText Name TagName Xpath ClassName CssSelector 这些 ...

  6. arcGis引入Dll报无法嵌入互操作类型错误解决方法

    arcGis引入Dll报“无法嵌入互操作类型"ESRI.ARCGIS.Geometry.PointClass".请改用通用接口."   解决方法:设置引用DLL的“嵌入互 ...

  7. Web---演示Servlet的相关类、表单多参数接收、文件上传简单入门

    说明: Servlet的其他相关类: ServletConfig – 代表Servlet的初始化配置参数. ServletContext – 代表整个Web项目. ServletRequest – 代 ...

  8. HDOJ/HDU 1804 Deli Deli(英语单词复数形式~)

    Problem Description Mrs. Deli is running the delicatessen store "Deli Deli". Last year Mrs ...

  9. C语言练习题_邮票组合

    背景:        我们寄信都要贴邮票,在邮局有一些小面值的邮票,通过这些小面值邮票中的一张或几张的组合,可以满足不同邮件的不同的邮资.        现在,邮局有4种不同面值的邮票.在每个信封上最 ...

  10. HW4.13

    public class Solution { public static void main(String[] args) { int n = 0; while(n * n * n < 120 ...