export PKG_CONFIG_PATH=/usr/local/ffmpeg/lib/pkgconfig

来源:5-2 FFmpeg开发入门Log系统

Recker

2018-09-26

export PKG_CONFIG_PATH=/usr/local/ffmpeg/lib/pkgconfig

老师这段代码是什么意思?
再问下mac下如何设置包路径?我这边设置了上面那段代码然后再运行

clang -g -o ffmpeg_log ffmpeg_log.c `pkg-config --libs --cflags libavutil`

才可以

写回答

2回答

慕粉3536494

2019-11-09

我也是mac,遇到了这个问题。环境变量已配置,echo $PATH可以看到正确配置的环境信息。所有的.pc文件均可找到,但还是报如上错误,请问何解?

0
2
慕粉3536494
回复
李超
pkg-config安装了,要不然在mac中无法编译出ffmpeg。刚执行了一把这个指令,执行都结果是: admindeMacBook-Pro:~ admin$ pkg-config Must specify package names on the command line
2019-11-10
共2条回复

李超

2018-09-26

你问了一个很好的问题,这就涉及到Linux/Mac下的编译机制了。如果对Linux不熟悉的话,是很难理解上面为什么要这样做的。

无论是在Linux系统下还是在Window系统下,大家对PATH都比较了解。只要我们将一个可执行程序放在 PATH这个路径下,那么无论我在哪里执行这程序,它都能正常执行,这个你是有体会的对吧。

为什么会这样呢?这是因为我们在运行这个程序的时候,操作系统会到 PATH的路径上查找每一个目录下是否有我们要执行的程序。如果找到了,它才会真正调用那个目录下的我们要执行的程序。否则,如果操作系统找不到,它会给我们一个提示信息,说没有这个程序。

对于编译也是类似的原理。在我们执行上面那行编译指令的时候,其中的 pkg-config 命令是到 PKG_CONFIG_PATH指定的路径下找指定库的 .pc 文件,然后从.pc文件中拿到需要的库路径,名称以及头文件。有了库文件,和头文件之后,我们才能编译成功。

你可按我说的到 usr/local/ffmpeg/lib/pkgconfig目录下,看看是否有libavutil libavformat等相关的.pc文件存在,再看看里边的内容你就清楚了。

0
2
李超
这个环境变量就是找到这个.pc文件呀,后面那个命令是为了读.pc 文件的内容。现在如果不能理解他的话,就先照着做,等过一段时间对Linux 熟悉了,你就理解了,不必在这里纠结哈
2019-07-31
共2条回复

经典再升级-FFmpeg5.0核心技术精讲,打造音视频播放器

学好FFmpeg核心技术,做高效,高薪,有竞争力的音视频工程师

2726 学习 · 814 问题

查看课程