得到奇怪的错误'未定义的符号引用'avcodec_receive_packet'

时间:2017-12-09 15:24:21

标签: c++ ffmpeg

我正在尝试编译程序但是得到奇怪的错误却不知道为什么。

> c++ src/main.cpp.o -o test -lavformat -lavcodec -lavdevice -lavutil -lswscale -lpthread /usr/bin/ld: src/main.cpp.o: undefined reference to symbol 'avcodec_receive_packet@@LIBAVCODEC_57' //usr/local/lib/libavcodec.so.57: error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status

但是当我发现/usr/local/lib/libavcodec.so.57nm一起检查时,我得到了以下输出

> nm /usr/local/lib/libavcodec.so.57 | grep avcodec_receive_packet 0000000000630590 T avcodec_receive_packet

为什么c++无法检测到avcodec_receive_packet

,这很奇怪

更新 由于我使用C中的C++C代码附带extern关键字

extern "C" {
#include <libavutil/opt.h>
#include <libavformat/avformat.h>
#include <libavcodec/avcodec.h>
#include <libswscale/swscale.h>
#include <libavutil/imgutils.h>
}

0 个答案:

没有答案