我遵循ffmpeg tuorial并通过ppa安装ffmpeg
但是当我编译tuorial02.c时,我得到了gcc错误:
/usr/bin/ld:/opt/ffmpeg/lib//libavcodec.a(libvorbisenc.o):未定义对符号“vorbis_encode_setup”的引用
//usr/lib/x86_64-linux-gnu/libvorbisenc.so.2:添加符号时出错:命令行缺少dso
错误2:LD返回1退出状态
我的编译命令是:

gcc -I /opt/ffmpeg/include/ -L /opt/ffmpeg/lib/  -o tutorial02 tutorial02.c -lavformat -lavcodec -lswscale `sdl-config --cflags --libs`  -lpthread -lz -lm -ldl

我找了几个小时的理由。我解决不了这个问题。有人能帮我吗?
我在结尾加了一个。错误是找不到lib。已经安装了libvorivisenc2。所以这个问题不是Strange linking error: DSO missing from command line
我的操作系统是LinuxMint17.3

最佳答案

错误是告诉您静态库libavcodec.a引用了libvorbisenc中的符号,但是libvorbisenc没有显式地出现在link命令中(尽管它确实在link命令的另一个共享库中找到了一个好的候选者)。您需要显式地将-lvorbisenc$(pkg-config --libs vorbisenc)添加到命令行中。
(在这种情况下,旧版本的binutils允许隐式引入共享库;但是,新版本的binutils更严格。)

关于c - 编译某些ffmpeg应用程序时出现gcc奇怪的ld错误,找不到libvorbisenc包,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37096129/

10-10 19:29