一、废话

最近学习,第一步就是编译.我们需要编译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. Oracle core05_事务和一致性

    事务和一致性 oracle的redo和undo机制保证了数据库的ACID特性,以及高性能和可恢复特性. redo的数据是记录着数据块变更的顺序的正向数据流, commit时,保证redo同步持久化,保 ...

  2. bzoj2285

    完全是为了拼凑才出出来的吧先分数规划求出到基地入口的最小安全系数然后再最小点权覆盖集,只不过这里是带一定精度实数的流,其实是一样的 ; eps=0.001; type way=record po,ne ...

  3. java线程(2)-线程间通信

    方法一 通过访问共享变量的方式(注:需要处理同步问题) 方法二 通过管道流 其中方法一有两种实现方法,即 方法一a)通过内部类实现线程的共享变量  public class Innersharethr ...

  4. Unity3D-基本导航(NavMesh)功能实现

    1: 打开场景 2:打开Navgation窗口 菜单中: Window --> Navgation, 在Inspector旁边会出现导航界面 这个Objcet的面板是对应当前选择的物体的,旁边的 ...

  5. 使用Notify 和 wait ,使用Linklist实现生产者消费者问题

    ref:http://www.cnblogs.com/happyPawpaw/archive/2013/01/18/2865957.html 注释很清楚的, import java.util.Link ...

  6. 【解决】笔记本发射WiFi

    这个百度一下一大堆 .. 不过还是希望自己总结一发适合自己的 (*^__^*)  废话不多说,开始 基于几个bat (1)CreateWlan.bat netsh wlan set hostednet ...

  7. openstack libtray

    OpenStack packages¶ Distributions release OpenStack packages as part of the distribution or using ot ...

  8. openSuSE12.1 zypper LAMP

    LAMP是由Apache MySQL PHP组成的,是在Linux下最受欢迎的软件组合之一,目前互联网上有很多网站运行在LAMP服务器上. Linux - 是富有情味的开源操作系统:Apache -  ...

  9. Mysql查找如何判断字段是否包含某个字符串

    Mysql查找如何判断字段是否包含某个字符串   有这样一个需求,在Mysql数据库字符串字段(权限)中,用户有多个不同的邮箱,分别被‘,’分开,现在要取出某个邮箱的所有成员列表.   假设有个表: ...

  10. Decode Ways -- LeetCode

    原题链接: http://oj.leetcode.com/problems/decode-ways/  这道题要求解一个数字串依照字符串编码方式可解析方式的数量.看到这样的求数量的,我们非常easy想 ...