编译x86

作者: Frankeen | 来源:发表于2018-01-17 16:53 被阅读4次
    编译脚本
    #!/bin/bash
    NDK=/tmp/frank/android-ndk-r14b
    SYSROOT=$NDK/platforms/android-14/arch-x86/
    TOOLCHAIN=$NDK/toolchains/x86-4.9/prebuilt/linux-x86_64
    function build_x86
    {   
        ./configure \
        --prefix=$PREFIX \
        --enable-shared \
        --disable-static \
        --disable-doc \
        --disable-ffserver \
        --enable-cross-compile \
        --cross-prefix=$TOOLCHAIN/bin/i686-linux-android- \
        --target-os=linux \
        --arch=x86 \
        --enable-cross-compile \
        --sysroot=$SYSROOT \
        --extra-cflags="" \
        --extra-ldflags="" \
        --extra-libs="" 
    }
    CPU=x86
    PREFIX=$(pwd)/android/$CPU
    build_x86
    
    问题1

    yasm/nasm not found or too old. Use --disable-yasm for a crippled build.

    解决方案:

    yasm是汇编编译器,因为ffmpeg中为了提高效率用到了汇编指令,比如MMX和SSE。解决这个问题方面有两个:

    1、在网上下载一个yasm.exe并安装在mingw/bin下面,编译代码时你注意看,会发现asm后缀的文件用的编译器是yasm,c文件用的是gcc;

    2、不使用汇编指令,在配置时加上,即./configure --disable-yasm yasm

    下载地址:http://yasm.tortall.net/Download.html

    问题2

    error: libavutil/../compat/strtod.o

    解决方案:

    去FFmpeg的compat目录下删除掉strdod.o文件,然后make clean

    相关文章

      网友评论

          本文标题:编译x86

          本文链接:https://www.haomeiwen.com/subject/kcuuoxtx.html