我尝试在qt中使用ffmpeg,但是我得到了未定义的引用错误

时间:2017-08-16 18:34:08

标签: c++ qt ffmpeg undefined-reference

我试图自己解决这个问题,但我无法解决。我用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

0 个答案:

没有答案