Linux下ffmpeg库的编译链接
/usr/bin/ld: /usr/local/ffmpeg/lib/libavformat.a(aviobuf.o): in function `ff_crc04C11DB7_update':
/home/ann/FFmpeg/ffmpeg/libavformat/aviobuf.c:568: undefined reference to `av_crc_get_table'
/usr/bin/ld: /home/ann/FFmpeg/ffmpeg/libavformat/aviobuf.c:568: undefined reference to `av_crc'
/usr/bin/ld: /usr/local/ffmpeg/lib/libavformat.a(aviobuf.o): in function `ff_crcEDB88320_update':
/home/ann/FFmpeg/ffmpeg/libavformat/aviobuf.c:574: undefined reference to `av_crc_get_table'
/usr/bin/ld: /home/ann/FFmpeg/ffmpeg/libavformat/aviobuf.c:574: undefined reference to `av_crc'
...................(省略)
在Linux下调用ffmpeg的库libavutil, libavformat 时,报出了以上一大堆错误。全是各种库找不到的问题。记录一下解决办法:将ffmpeg提供的所有.pc文件所在的路径加入环境变量PKG_CONFIG_PATH中,使用pkg-config对源代码编译链接。
在ffmpeg的安装目录中,ffmpeg在lib/提供了一个目录pkgconfig,里面存放了各种.pc文件。
在~/.bashrc末尾加上两行:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/ffmpeg/lib/pkgconfig/
export PKG_CONFIG_PATH
然后source .bashrc就行了。之后使用pkg-config进行编译链接:
gcc -o ffmpeg_dir ffmpeg_dir.c `pkg-config --cflags --libs libavutil libavformat`
编译成功:
pkg-config
pkg-config是Linux下的一个工具,可以用 sudo apt install pkg-config 安装。pkg-config 用于获得一个库/模块与编译链接相关的信息。如:
pkg-config libavutil --cflags --libs
获取与 libavutil 的include 地址以及库/模块的地址:
可用pkg-config显示的模块信息需要将对应的.pc文件加入环境变量PKG_CONFIG_PATH下。如,我这里libavutil.pc所在目录为/usr/local/ffmpeg/lib/pkgconfig, 所以只有当环境变量PKG_CONFIG_PATH包含路径/usr/local/ffmeg/lib/pkgconfig时,pkg-config libavutil --cflags --libs 才能输出该模块相关的信息。
或者:.pc文件在/usr/lib目录下。
Linux下ffmpeg库的编译链接的更多相关文章
- Linux下FFmpeg的安装编译过程【转】
本文转载自:http://www.linuxidc.com/Linux/2013-06/85628.htm 详细说下在Linux下FFmpeg的安装编译过程.参考 Ubuntu 10.04安装编译FF ...
- linux下json库的编译及例程
.下载JsonCpp http://sourceforge.net/projects/jsoncpp/files/ .下载scons http://sourceforge.net/projects/s ...
- Linux下boost库的编译、安装详解
下载boost源码 boost下载地址 解压到一个目录 tar -zxvf boost_1_66_0.tar.gz 编译boost库 进入boost_1_66_0目录中 cd boost_1_66_0 ...
- 深入理解LINUX下动态库链接器/加载器ld-linux.so.2
[ld-linux-x86-64.so.2] 最近在Linux 环境下开发,搞了好几天 Compiler 和 linker,觉得有必要来写一篇关于Linux环境下 ld.so的文章了,google上搜 ...
- 谈谈Linux下动态库查找路径的问题 ldconfig LD_LIBRARY_PATH PKG_CONFIG_PATH
谈谈Linux下动态库查找路径的问题 ldconfig LD_LIBRARY_PATH PKG_CONFIG_PATH 转载自:http://blog.chinaunix.net/xmlrpc.ph ...
- Linux下动态库生成和使用
Linux下动态库生成和使用 一.动态库的基本概念 1.动态链接库是程序运行时加载的库,当动态链接库正确安装后,所有的程序都可以使用动态库来运行程序.动态链接库是目标文件的集合,目标文件在动态链接库中 ...
- Linux下静态库生成和使用
Linux下静态库生成和使用 一.静态库概念 1.库是预编译的目标文件(object files)的集合,它们可以被链接进程序.静态库以后缀为”.a”的特殊的存档(archive file)存储. ...
- linux下静态库和动态库一些东西
http://www.cnblogs.com/changefuture/archive/2011/12/22/2297460.html Linux 动态链接库和静态库示例 文件预览 文件目录树如下, ...
- [转]Caffe在Linux下的安装,编译,实验
Caffe在Linux下的安装,编译,实验 原文地址:http://www.cnblogs.com/evansyang/p/6150118.html 第一部分:Caffe 简介 caffe是有伯克利 ...
- Linux下librdkafka客户端的编译运行
Linux下librdkafka客户端的编译运行 librdkafka是一个开源的Kafka客户端C/C++实现,提供了Kafka生产者.消费者接口. 由于项目需要,我要将Kafka生产者接口封装起来 ...
随机推荐
- Windows系统使用ODBC驱动访问KingaseES数据库及常见问题解决
Windows系统使用KingbaseES ODBC驱动访问KingaseES数据库及常见问题解决. 一.获取KingbaseES数据库ODBC驱动: 在官网下载KingbaseES数据库安装包,选择 ...
- Windows下获取设备管理器列表信息-setupAPI
背景及问题: 在与硬件打交道时,经常需要知道当前设备连接的硬件信息,以便连接正确的硬件,比如串口通讯查询连接的硬件及端口,一般手工的方式就是去设备管理器查看相应的信息,应用程序如何读取这一部分信息呢, ...
- 高德地图和echarts结合实现地图下钻(二)
一.学习ajax发送异步请求 1 $(function(){ 2 //请求参数 3 var list = {}; 4 // 5 $.ajax({ 6 //请求方式 7 type : "POS ...
- SQLSERVER 的表分区(水平) 操作记录1
--创建表格 (注意) 是唯一(NONCLUSTERED)表示 非聚集索引 CREATE TABLE [dbo].[UserInfo]( [Id] [int] IDENTITY(1,1) NOT NU ...
- Linux 基础命令和帮助命令
Linux命令 X Window 与命令行模式的切换 Linux默认的情况下会提供六个终端来让用户登录,切换的方式为使用[Ctrl+Alt+F1~F6]的组合键.系统会将[F1 ~ F6]命名为t ...
- #01背包#洛谷 2340 [USACO03FALL]Cow Exhibition G
题目 有\(n\)个物品,对于第\(i\)个物品, 有两种属性,第一种属性为\(x_i\),第二种属性为\(y_i\) 问选择若干个物品使得\(\sum{x_j}\geq 0\)且\(\sum{y_j ...
- SQLite主键自增代码
引用:https://blog.csdn.net/maowendi/article/details/81115401 insert into TubeRunInfo (UserName) values ...
- 【FAQ】视频编辑服务常见问题及解答
Q1问题描述 1. 访问贴纸等素材的时候提示"网络异常,请重试"怎么办? 2. 使用AI能力时,提示"errorCode:20124 errorMsg:Method no ...
- Python语言Numpy包之Meshgrid 函数
Meshgrid 函数的基本用法 在 Numpy 的官方文章里, meshgrid 函数的英文描述也显得文绉绉的,理解起来有些难度.可以这么理解, meshgrid 函数用两个坐标轴上的点在平面上画网 ...
- Leetcode-最小覆盖子串
题目描述 给你一个字符串 s .一个字符串 t .返回 s 中涵盖 t 所有字符的最小子串.如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 "" . 注意:如果 s 中 ...