zoukankan      html  css  js  c++  java
  • 【FFMPEG】【ARM-Linux开发】 ffmpeg 静态库使用,undefined reference错误

    原文:http://blog.csdn.net/chinazjn/article/details/7954984

    ffmpeg移植到dm365上,遇到undefined reference错误:

    GA/gabin/lib/libavformat.a(allformats.o): In function `av_register_all':
    /GA/ffmpeg-0.10/libavformat/allformats.c:53: undefined reference to `avcodec_register_all'
    /GA/gabin/lib/libavformat.a(amr.o): In function `amr_read_packet':
    /GA/ffmpeg-0.10/libavformat/amr.c:153: undefined reference to `av_new_packet'
    /GA/ffmpeg-0.10/libavformat/amr.c:169: undefined reference to `av_free_packet'
    /GA/gabin/lib/libavformat.a(anm.o): In function `read_header':
    /GA/ffmpeg-0.10/libavformat/anm.c:89: undefined reference to `av_log_ask_for_sample'
    /GA/ffmpeg-0.10/libavformat/anm.c:166: undefined reference to `av_log_ask_for_sample'
    /GA/gabin/lib/libavformat.a(ape.o): In function `ape_read_packet':
    /GA/ffmpeg-0.10/libavformat/ape.c:372: undefined reference to `av_new_packet'
    /GA/gabin/lib/libavformat.a(applehttp.o): In function `free_variant_list':
    /GA/ffmpeg-0.10/libavformat/applehttp.c:131: undefined reference to `av_free_packet'
    /GA/gabin/lib/libavformat.a(applehttp.o): In function `reset_packet':
    /GA/ffmpeg-0.10/libavformat/applehttp.c:151: undefined reference to `av_init_packet'
    /GA/ffmpeg-0.10/libavformat/applehttp.c:151: undefined reference to `av_init_packet'
    /GA/gabin/lib/libavformat.a(applehttp.o): In function `applehttp_read_seek':
    /GA/ffmpeg-0.10/libavformat/applehttp.c:712: undefined reference to `av_free_packet'
    /GA/gabin/lib/libavformat.a(applehttp.o): In function `reset_packet':


    网上查阅,普遍提示两种解决方法:

    一、ffmpeg是纯C的库,应用程序用C++来编译。

    二、路径、需要的库包含不全。

    以上具体就不说了,搜索下便是。

    我在无数遍仔细确认上述两种可能性后,仍然报错。郁闷了一个晚上。。

    后来查阅ffmpeg的 pkg-config,终于找到原因,错误导致过程让我痛苦,原因却很简单。

    错误:gcc  test.c -o test -I/GA/gabin/include/ -L/GA/gabin/lib  -lavcodec -lavformat  -lavdevice -lavutil -pthread  -ldl -lswscale -lSDL -lbz2  -lasound -lz -lm  

    调整: gcc  test.c -o test -I/GA/gabin/include/ -L/GA/gabin/lib  -lavformat  -lavdevice -lavcodec  -lavutil -pthread  -ldl -lswscale -lSDL -lbz2  -lasound -lz -lm  

    问题解决,同志需要注意包依赖关系。

  • 相关阅读:
    linux进程调度(zz)
    为什么vfork的子进程里用return,整个程序会挂掉,而且exit不会(zz)
    ubuntu安装samba
    【前端知乎系列】ArrayBuffer 和 Blob 对象
    【Web技术】442- 关于图片懒加载的几种方案
    【Web技术】441- 蚂蚁前端研发最佳实践
    【面试题】440- 10 道 Nodejs EventLoop 和事件相关面试题
    【面试题】439- 这是一道网红面试题
    【Web技术】438- 移动端体验优化经验总结与实践
    记 · 寒风依旧 · 虎跑路和人生路
  • 原文地址:https://www.cnblogs.com/huty/p/8517567.html
Copyright © 2011-2022 走看看