zoukankan      html  css  js  c++  java
  • B0宏

    在编译android平台用的ffmpeg时,抛出这样一个错误:

    这句代码怎么看都找出有毛病,为什么B0会报错? 翻看aaccoder.c,也没有发现问题。为什么B0就成了一个常量数字,这里只有一个可能,B0在某处被宏定义了。那么将B0替换名称为BB0,果然顺利通过编译。

    但是又不久又报出错误:

    又是B0,这次是y##B0,宏展开后是y000000而不是代码希望的yB0,所以报错。B0在asm/termbits.h或asm-generic/termbits.h中被宏定义了

    这个B0是linux平台下都定义了的宏,只要你的代码需要引用asm目录下的头文件。解决也就是在报错的源文件将B0给undef。

    编译配置参考 http://blog.csdn.net/gobitan/article/details/22750719,这是别人的劳动。

    下面是引用它人的脚本代码

    #!/bin/bash
    NDK=/home/dennis/android-ndk-r9d
    SYSROOT=$NDK/platforms/android-9/arch-arm/
    TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64
    
    function build_one
    {
    ./configure 
        --prefix=$PREFIX 
        --enable-shared 
        --disable-static 
        --disable-doc 
        --disable-ffserver 
        --enable-cross-compile 
        --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- 
        --target-os=linux 
        --arch=arm 
        --sysroot=$SYSROOT 
        --extra-cflags="-Os -fpic $ADDI_CFLAGS" 
        --extra-ldflags="$ADDI_LDFLAGS" 
        $ADDITIONAL_CONFIGURE_FLAG
    }
    CPU=arm
    PREFIX=$(pwd)/android/$CPU
    ADDI_CFLAGS="-marm"
    build_one

    当然了,最好将ndk的toolchain脚本里的一些编译选项也加入到上面的脚本,还有不要忘记pie选项。

  • 相关阅读:
    程序员掌握的单词汇总
    Django--基础补充
    C#入门概述
    python常用模块
    软件开发经验之谈
    p7.BTC-挖矿总结
    p6.BTC-挖矿难度
    p5.BTC-网络
    p4.BTC-实现
    p3.BTC-协议
  • 原文地址:https://www.cnblogs.com/bbqzsl/p/7851356.html
Copyright © 2011-2022 走看看