zoukankan      html  css  js  c++  java
  • x264和FFMPEG 编译后遇到的一些问题:UINT64_C,

    吭吃坑吃的编译安装完ffmpeg 0.75,在centos5.9上后,遇到了一些问题,都是十分常见的问题,希望对大家有用。

    问题一

    /usr/local/include/libavutil/common.h: In function ‘int32_t av_clipl_int32_c(int64_t)’:
    /usr/local/include/libavutil/common.h:170: error: ‘UINT64_C’ was not declared in this scope

    这个问题可以这么解决

    编辑文件  gedit /usr/local/include/libavutil/common.h

    添加如下代码可以解决。

    //add by bg2bkk
    #ifndef UINT64_C
    #define UINT64_C(value) __CONCAT(value, ULL)
    #endif
    //add by bg2bkk

    问题二

    ./ffmpeg_test: error while loading shared libraries: libavcodec.so.52: cannot open shared object file: No such file or directory

    这个问题的原因在于没有把ffmpeg的lib放到ld.conf里,参考链接:http://forum.ivorde.ro/ffmpeg-error-while-loading-shared-libraries-libavdevice-so-52-cannot-open-shared-object-file-no-t129.html

    这个thread不错,有很多有用的命令:

    ldd `which ffmpeg` 查看ffmpeg的库是否可以找到

    这时一般会打印为:

    linux-gate.so.1 =>  (0x00f90000)
    libavdevice.so.52 => not found
    libavfilter.so.1 => not found
    libavformat.so.52 => not found
    libavcodec.so.52 => not found
    libpostproc.so.51 => not found
    libswscale.so.0 => not found
    libavutil.so.50 => not found
    libpthread.so.0 => /lib/libpthread.so.0 (0x00821000)
    libm.so.6 => /lib/libm.so.6 (0x007da000)
    libc.so.6 => /lib/libc.so.6 (0x0067b000)
    /lib/ld-linux.so.2 (0x0065c000)

    而命令find /usr/local/lib/ | grep -E "libavdevice.so.52|libavfilter.so.1|libavcodec.so.52|libavcore.so.0"

    通常会打印输出

    /usr/local/lib/libavdevice.so.52.5.0
    /usr/local/lib/libavfilter.so.1
    /usr/local/lib/libavdevice.so.52
    /usr/local/lib/libavfilter.so.1.80.0
    /usr/local/lib/libavcodec.so.52.123.0
    /usr/local/lib/libavcodec.so.52

    说明你有这些库,只是没有识别。当然,路径/usr/local/lib 和/usr/local/include主要是因为ffmpeg的安装前缀是/usr/lcoal,好像用户安装linux的软件默认都是这里。

    修改文件sudo vim /etc/ld.so.conf

    在文件里添加

    /usr/local/lib

    这句

    然后保存退出。

    sudo ldconfig

    这样就可以找到这些库了。

    问题三

    ./ffmpeg_test: error while loading shared libraries: /usr/local/lib/libswscale.so.0: cannot restore segment prot after reloc: Permission denied

    这个问题属于

    动态链接库加载出错:cannot restore segment prot after reloc: Permission denied

    关闭selinux即可
    sudo  /usr/sbin/setenforce 0

    这三个问题都是比较常见的问题,一般是可以解决问题的。
  • 相关阅读:
    reuire代码优化之:r.js
    项目伪模块化开发之:requirejs(AMD)开发
    cookie
    前端构建工具gulpjs的使用介绍及技巧
    js之:漂浮线
    同步对象(Event)
    并发&并行 同步&异步 GIL 任务 同步锁 死锁 递归锁
    进程 线程 threading模块
    认证客户端的链接合法性
    socketserver 模块的构成
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3125111.html
Copyright © 2011-2022 走看看