我试图自己解决这个问题,但我无法解决。我用msys 3步法安装FFmpeg:
configure
make
make install
并尝试链接.pro中的每个库。起初,我得到的错误就像对avcodec_register_all()
的未定义引用;但是在他们停止了所有的图书馆之后,而不是他们,我得到了另外6个:
c:\ ffmpeg-3.3.3 \ libavutil \ error.c:120:错误:未定义引用`strerror_r'
c:\ mingw \ include \ time.h:422:错误:未定义引用`__mingw_sleep'
c:\ mingw \ include \ stdlib.h:810:错误:未定义引用`__mingw_mkstemp'
c:\ mingw \ include \ stdlib.h:810:错误:未定义引用`__mingw_mkstemp'
localcharset.c:-1:错误:未定义引用`_imp__GetACP @ 0'
collect2.exe:-1:错误:错误:ld返回1退出状态
这是main.cpp:
#include <iostream>
using namespace std;
#define __STDC_CONSTANT_MACROS
extern "C" {
#include <libavutil/frame.h>
#include <libavutil/mem.h>
#include <libavcodec/avcodec.h>
}
int main(int argc, char *argv[])
{
cout << "Enter input file name." << endl;
string inName, outName;
cin>>inName;
cout<<"Enter output file name."<<endl;
cin>>outName;
avcodec_register_all();
return 0;
}
和我的.pro
TEMPLATE = app
CONFIG += console c++11
CONFIG -= app_bundle
CONFIG -= qt
SOURCES += main.cpp
LIBS += -LC:\ffmpeg-3.3.3\ffmpeg\lib
LIBS += -lpthread
LIBS += -lavdevice
LIBS += -lavfilter
LIBS += -lavformat
LIBS += -lavcodec
LIBS += -lz
LIBS += -lswresample
LIBS += -lswscale
LIBS += -lavutil
LIBS += -lm
INCLUDEPATH += C:/ffmpeg-3.3.3/ffmpeg/include