采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
export PKG_CONFIG_PATH=/usr/local/ffmpeg/lib/pkgconfig
老师这段代码是什么意思? 再问下mac下如何设置包路径?我这边设置了上面那段代码然后再运行
clang -g -o ffmpeg_log ffmpeg_log.c `pkg-config --libs --cflags libavutil`
才可以
我也是mac,遇到了这个问题。环境变量已配置,echo $PATH可以看到正确配置的环境信息。所有的.pc文件均可找到,但还是报如上错误,请问何解?
pkg-config 工具没安装吧?你执行一下这个命令,看看结果是什么
pkg-config安装了,要不然在mac中无法编译出ffmpeg。刚执行了一把这个指令,执行都结果是: admindeMacBook-Pro:~ admin$ pkg-config Must specify package names on the command line
你问了一个很好的问题,这就涉及到Linux/Mac下的编译机制了。如果对Linux不熟悉的话,是很难理解上面为什么要这样做的。
无论是在Linux系统下还是在Window系统下,大家对PATH都比较了解。只要我们将一个可执行程序放在 PATH这个路径下,那么无论我在哪里执行这程序,它都能正常执行,这个你是有体会的对吧。
为什么会这样呢?这是因为我们在运行这个程序的时候,操作系统会到 PATH的路径上查找每一个目录下是否有我们要执行的程序。如果找到了,它才会真正调用那个目录下的我们要执行的程序。否则,如果操作系统找不到,它会给我们一个提示信息,说没有这个程序。
对于编译也是类似的原理。在我们执行上面那行编译指令的时候,其中的 pkg-config 命令是到 PKG_CONFIG_PATH指定的路径下找指定库的 .pc 文件,然后从.pc文件中拿到需要的库路径,名称以及头文件。有了库文件,和头文件之后,我们才能编译成功。
你可按我说的到 usr/local/ffmpeg/lib/pkgconfig目录下,看看是否有libavutil libavformat等相关的.pc文件存在,再看看里边的内容你就清楚了。
谢谢老师的讲解。 但是我设置 export PKG_CONFIG_PATH=/usr/local/ffmpeg/lib/pkgconfig 之后。 看了usr/local/ffmpeg/lib/pkgconfig 目录下也有libavutil libavformat等相关的.pc文件,但是也要加 `pkg-config --libs --cflags libavutil` 才能编译成功,这个是为什么?
这个环境变量就是找到这个.pc文件呀,后面那个命令是为了读.pc 文件的内容。现在如果不能理解他的话,就先照着做,等过一段时间对Linux 熟悉了,你就理解了,不必在这里纠结哈
登录后可查看更多问答,登录/注册
学好FFmpeg核心技术,做高效,高薪,有竞争力的音视频工程师
4.9k 7
4.9k 3
1.8k 12
173 12
38 12