我关注ffmpeg tuorial,并通过ppa
安装ffmpeg但是当我编译tuorial02.c时,我得到了gcc错误:
/ usr / bin / ld:/opt/ffmpeg/lib//libavcodec.a(libvorbisenc.o):对符号'vorbis_encode_setup_vbr'的未定义引用
// usr / lib / x86_64-linux-gnu / libvorbisenc.so.2:添加符号时出错:命令行中缺少DSO collect2:错误: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
我搜索了几个小时的原因。我无法解决这个问题。任何人都可以帮助我吗?
已添加我已将-lvorbisenc
添加到最后。错误是找不到lib。和libvorivisenc2已经安装。所以这个问题不是Strange linking error: DSO missing from command line
我的操作系统是Linux薄荷17.3
答案 0 :(得分:1)
错误告诉您静态库str()
引用libvorbisenc中的符号,但libvorbisenc未在您的链接命令中显式显示(尽管它确实在链接命令中找到了来自另一个共享库的好候选者)。您需要将libavcodec.a
或-lvorbisenc
明确添加到命令行。
(较旧版本的binutils会让你在这种情况下隐式引入共享库;但是,更新版本的binutils更严格。)