原文: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

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

【FFMPEG】【ARM-Linux开发】 ffmpeg 静态库使用,undefined reference错误的更多相关文章

  1. Codeblocks 添加库(undefined reference 错误的处理)

    静态库  (扩展名为 .a 或 .lib) 是包含函数的文件,用于在link阶段整合执行程序,动态链接库(扩展名  .dll)是不在link阶段整合进执行程序中的. DLL文件在执行阶段动态调用 下面 ...

  2. 在Linux中创建静态库.a和动态库.so

    转自:http://www.cnblogs.com/laojie4321/archive/2012/03/28/2421056.html 在Linux中创建静态库.a和动态库.so 我们通常把一些公用 ...

  3. linux下的静态库和动态库

    一.linux下的静态库   静态库中的被调用的函数的代码会在编译时一起被复制到可执行文件中去的!!可执行文件在运行不需要静态库的存在!   二.linux下动态库的构建和使用 1.动态库的构建   ...

  4. iOS开发中静态库之".framework静态库"的制作及使用篇

    iOS开发中静态库之".framework静态库"的制作及使用篇 .framework静态库支持OC和swift .a静态库如何制作可参照上一篇: iOS开发中静态库之" ...

  5. iOS开发中静态库制作 之.a静态库制作及使用篇

    iOS开发中静态库之".a静态库"的制作及使用篇 一.库的简介 1.什么是库? 库是程序代码的集合,是共享程序代码的一种方式 2.库的类型? 根据源代码的公开情况,库可以分为2种类 ...

  6. iOS开发之静态库(五)—— 图片、界面xib等资源文件封装到静态框架framework

    编译环境:Macbook Air + OS X 10.9.2 + XCode5.1 + iPhone5s(iOS7.0.3) 一.首先将资源文件打包成bundle 由于bundle是静态的,所以可以将 ...

  7. Linux库函数制作(静态库、动态库)

    Linux库函数制作(静态库.动态库) 静态库与动态库 链接方式 链接分为两种:静态链接.动态链接 静态链接: 由链接器在链接时将库的内容加入到可执行程序中 静态链接的特点是: 优点: 对运行环境的依 ...

  8. linux+vs2013编译静态库和动态库

    Linux下创建与使用静态库 Linux静态库命名规则 Linux静态库命名规范,必须是"lib[your_library_name].a":lib为前缀,中间是静态库名,扩展名为 ...

  9. 李洪强iOS开发之静态库的打包一

    李洪强iOS开发之静态库的打包一 //静态库一般做一下几种事情 //1 工具类 算法逻辑 新建工具类LHQTools 定义类方法 + (NSInteger)sumWithNum1: (NSIntege ...

随机推荐

  1. windows版idea 2018.3.5版 永久激活教程

    1.下载idea并安装:https://download.jetbrains.com/idea/ideaIU-2018.3.5.exe?_ga=2.179947812.1869744014.15658 ...

  2. js实现上传文件夹

    上传大文件的解决方案 需求:项目要支持大文件上传功能,经过讨论,初步将文件上传大小控制在500M内,因此自己需要在项目中进行文件上传部分的调整和配置,自己将大小都以501M来进行限制. 第一步: 前端 ...

  3. CSPS模拟69-72

    模拟69: T1,稍数学,主要还是dp(转移莫名像背包???),当C开到n2时复杂度为n4,考场上想了半天优化结果发现n是100,n4可过 #include<iostream> #incl ...

  4. sqlserver 存储过程的新建与执行

    if Exists(select * from sysobjects where NAME = 'insert_custominfo' and type='P') drop procedure ins ...

  5. MySQL新特性文档型数据库

    mongodb在文档型数据库这方面一直做的很好,也发展了很多年,MySQL作为一个比较大众的数据库也慢慢支持了该特性,下面介绍一下MySQL支持文档型数据库的简单操作. 环境: 主机名 IP 系统 软 ...

  6. Vue图片浏览组件v-viewer,支持旋转、缩放、翻转等操作

    v-viewer 用于图片浏览的Vue组件,支持旋转.缩放.翻转等操作,基于viewer.js. 从0.x迁移 你需要做的唯一改动就是手动引入样式文件: 1 import 'viewerjs/dist ...

  7. GA算法及参数对结果的影响

    1.遗传算法简介 遗传算法是一种基于自然选择和群体遗传机理的搜索算法,它模拟了自然选择和自然遗传过程中的繁殖.杂交和突变现象.再利用遗传算法求解问题时,问题的每一个可能解都被编码成一个“染色体”,即个 ...

  8. 使用Vagrant配置本地开发环境

    从二零一四年开始使用vagrant+VirtualBox搭建linux开发环境,配置简单灵活,后台运行占用内存少,比vmware好用很多,果断弃用vmware转投vagrant的怀抱:无论是个人搭建开 ...

  9. Java-基于 Instrument 的 Agent

    Agent 为 JVMTI 的客户端. 这里记录的是基于Java Instrument 的 Agent 实现,还有直接基于 JVMTI 的 Agent 实现. 在 JDK1.5 以后,我们可以使用 A ...

  10. mysql端口3306无法访问

    mysql主备复制,show slave status显示IO一直connecting 一.查看了防火墙,已经处于关闭状态 二.查看使用的复制用户的权限,也已经开放 三.telnet访问另外一台机器端 ...