我正在尝试将ffmpeg与qt一起使用,但是我收到了未定义的引用错误

I'm trying to use ffmpeg with qt but I get undefined references errors

提问人:Dominik Révai 提问时间:8/17/2017 最后编辑:CommunityDominik Révai 更新时间:8/17/2017 访问量:543

问:

我试图自己解决这个问题,但我做不到。我使用 msys 3 步方法安装了 FFmpeg:

configure 
make 
make install 

并尝试链接 .pro 中的每个库。起初,我遇到了错误,例如对 ;但是在链接了所有库之后,他们停止了,取而代之的是另外 6 个:avcodec_register_all()

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 退出状态

这是主.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
C++ Qt ffmpeg 未定义引用

评论

0赞 user7860670 8/17/2017
你试过搬进去吗?using namespace std;main
0赞 Dominik Révai 8/17/2017
是的,我试过了,它给出了相同的错误,无论在哪里使用命名空间 std,我什至尝试删除它但没有变化
2赞 Alexander V 8/17/2017
这很可能是关于FFMpeg库期望MingW C(它是以这种方式构建的?)运行时与可执行文件链接,但可执行文件没有(不同的编译器添加不同的运行时)。
0赞 user7860670 8/17/2017
奇怪的是,您从以下位置收到错误\libavutil\error.c

答: 暂无答案