qt FFmpeg Mac symbol(s) not found for architecture x86_64

MacOS Big Sur (intel 的处理器)

QT

Qt Creator 4.8.2
Based on Qt 5.9.8 (Clang 10.0 (Apple), 64 bit)
Built on Mar 22 2019 11:10:00

FFmpeg版本

ffmpegn4.3.1

问题

Undefined symbols for architecture x86_64
Undefined symbols for architecture x86_64

_http_close in libavformat.a(http.o)

:-1: error: symbol(s) not found for architecture x86_64
:-1: error: linker command failed with exit code 1 (use -v to see invocation)


Undefined symbols for architecture x86_64:
  "_CFArrayCreateMutableCopy", referenced from:
      _tls_open in libavformat.a(tls_securetransport.o)
  "_CFArrayGetCount", referenced from:
      _import_pem in libavformat.a(tls_securetransport.o)
  "_CFArrayGetValueAtIndex", referenced from:
      _tls_open in libavformat.a(tls_securetransport.o)
  "_CFArraySetValueAtIndex", referenced from:
      _tls_open in libavformat.a(tls_securetransport.o)
  "_CFDataCreate", referenced from:
      _import_pem in libavformat.a(tls_securetransport.o)
      _ff_videotoolbox_avcc_extradata_create in libavcodec.a(videotoolbox.o)
      _av_videotoolbox_default_init2 in libavcodec.a(videotoolbox.o)
      _ff_vda_create_decoder in libavcodec.a(vda_h264.o)
      _vda_old_h264_end_frame in libavcodec.a(vda_h264.o)
      _vda_h264_end_frame in libavcodec.a(vda_h264.o)
  "_CFDictionaryCreateMutable", referenced from:
      _av_videotoolbox_default_init2 in libavcodec.a(videotoolbox.o)
      _ff_vda_create_decoder in libavcodec.a(vda_h264.o)
      _ff_vda_default_init in libavcodec.a(vda_h264.o)
  "_CFDictionarySetValue", referenced from:
      _av_videotoolbox_default_init2 in libavcodec.a(videotoolbox.o)
      _ff_vda_create_decoder in libavcodec.a(vda_h264.o)
      _ff_vda_default_init in libavcodec.a(vda_h264.o)
  "_CFNumberCreate", referenced from:
      _av_videotoolbox_default_init2 in libavcodec.a(videotoolbox.o)
      _ff_vda_create_decoder in libavcodec.a(vda_h264.o)
      _ff_vda_default_init in libavcodec.a(vda_h264.o)
  "_CFRelease", referenced from:
      _tls_open in libavformat.a(tls_securetransport.o)
      _tls_close in libavformat.a(tls_securetransport.o)
      _import_pem in libavformat.a(tls_securetransport.o)
      _av_videotoolbox_default_init2 in libavcodec.a(videotoolbox.o)
      _av_videotoolbox_default_free in libavcodec.a(videotoolbox.o)
      _videotoolbox_common_end_frame in libavcodec.a(videotoolbox.o)
      _ff_vda_create_decoder in libavcodec.a(vda_h264.o)
      ...
  "_CFRetain", referenced from:
      _tls_open in libavformat.a(tls_securetransport.o)
  "_CFStringCreateWithCString", referenced from:
      _import_pem in libavformat.a(tls_securetransport.o)
  "_CMBlockBufferCreateWithMemoryBlock", referenced from:
      _videotoolbox_common_end_frame in libavcodec.a(videotoolbox.o)
  "_CMSampleBufferCreate", referenced from:
      _videotoolbox_common_end_frame in libavcodec.a(videotoolbox.o)
  "_CMVideoFormatDescriptionCreate", referenced from:
      _av_videotoolbox_default_init2 in libavcodec.a(videotoolbox.o)
  "_CVPixelBufferGetPixelFormatType", referenced from:
      _vda_decoder_callback in libavcodec.a(vda_h264.o)
  "_CVPixelBufferRelease", referenced from:
      _videotoolbox_buffer_release in libavcodec.a(videotoolbox.o)
      _ff_videotoolbox_uninit in libavcodec.a(videotoolbox.o)
      _videotoolbox_decoder_callback in libavcodec.a(videotoolbox.o)
      _vda_old_h264_end_frame in libavcodec.a(vda_h264.o)
      _ff_vda_output_callback in libavcodec.a(vda_h264.o)
      _vda_h264_release_buffer in libavcodec.a(vda_h264.o)
  "_CVPixelBufferRetain", referenced from:
      _videotoolbox_decoder_callback in libavcodec.a(videotoolbox.o)
      _vda_decoder_callback in libavcodec.a(vda_h264.o)
      _ff_vda_output_callback in libavcodec.a(vda_h264.o)
  "_SSLClose", referenced from:
      _tls_open in libavformat.a(tls_securetransport.o)
      _tls_close in libavformat.a(tls_securetransport.o)
  "_SSLCopyPeerTrust", referenced from:
      _tls_open in libavformat.a(tls_securetransport.o)
  "_SSLCreateContext", referenced from:
      _tls_open in libavformat.a(tls_securetransport.o)
  "_SSLHandshake", referenced from:
      _tls_open in libavformat.a(tls_securetransport.o)
  "_SSLRead", referenced from:
      _tls_read in libavformat.a(tls_securetransport.o)
  "_SSLSetCertificate", referenced from:
      _tls_open in libavformat.a(tls_securetransport.o)
  "_SSLSetConnection", referenced from:
      _tls_open in libavformat.a(tls_securetransport.o)
  "_SSLSetIOFuncs", referenced from:
      _tls_open in libavformat.a(tls_securetransport.o)
  "_SSLSetPeerDomainName", referenced from:
      _tls_open in libavformat.a(tls_securetransport.o)
  "_SSLSetSessionOption", referenced from:
      _tls_open in libavformat.a(tls_securetransport.o)
  "_SSLWrite", referenced from:
      _tls_write in libavformat.a(tls_securetransport.o)
  "_SecIdentityCreate", referenced from:
      _tls_open in libavformat.a(tls_securetransport.o)
  "_SecItemImport", referenced from:
      _import_pem in libavformat.a(tls_securetransport.o)
  "_SecTrustEvaluate", referenced from:
      _tls_open in libavformat.a(tls_securetransport.o)
  "_SecTrustSetAnchorCertificates", referenced from:
      _tls_open in libavformat.a(tls_securetransport.o)
  "_VDADecoderCreate", referenced from:
      _ff_vda_create_decoder in libavcodec.a(vda_h264.o)
      _ff_vda_default_init in libavcodec.a(vda_h264.o)
  "_VDADecoderDecode", referenced from:
      _vda_old_h264_end_frame in libavcodec.a(vda_h264.o)
      _vda_h264_end_frame in libavcodec.a(vda_h264.o)
  "_VDADecoderDestroy", referenced from:
      _ff_vda_destroy_decoder in libavcodec.a(vda_h264.o)
  "_VDADecoderFlush", referenced from:
      _vda_old_h264_end_frame in libavcodec.a(vda_h264.o)
      _vda_h264_end_frame in libavcodec.a(vda_h264.o)
  "_VTDecompressionSessionCreate", referenced from:
      _av_videotoolbox_default_init2 in libavcodec.a(videotoolbox.o)
  "_VTDecompressionSessionDecodeFrame", referenced from:
      _videotoolbox_common_end_frame in libavcodec.a(videotoolbox.o)
  "_VTDecompressionSessionInvalidate", referenced from:
      _av_videotoolbox_default_free in libavcodec.a(videotoolbox.o)
  "_VTDecompressionSessionWaitForAsynchronousFrames", referenced from:
      _videotoolbox_common_end_frame in libavcodec.a(videotoolbox.o)
  "___CFConstantStringClassReference", referenced from:
      CFString in libavcodec.a(videotoolbox.o)
      CFString in libavcodec.a(videotoolbox.o)
      CFString in libavcodec.a(videotoolbox.o)
  "_kCFAllocatorDefault", referenced from:
      _tls_open in libavformat.a(tls_securetransport.o)
      _import_pem in libavformat.a(tls_securetransport.o)
      _ff_videotoolbox_avcc_extradata_create in libavcodec.a(videotoolbox.o)
      _av_videotoolbox_default_init2 in libavcodec.a(videotoolbox.o)
      _videotoolbox_common_end_frame in libavcodec.a(videotoolbox.o)
      _ff_vda_create_decoder in libavcodec.a(vda_h264.o)
      _vda_old_h264_end_frame in libavcodec.a(vda_h264.o)
      ...
  "_kCFAllocatorNull", referenced from:
      _videotoolbox_common_end_frame in libavcodec.a(videotoolbox.o)
  "_kCFBooleanTrue", referenced from:
      _av_videotoolbox_default_init2 in libavcodec.a(videotoolbox.o)
  "_kCFTypeDictionaryKeyCallBacks", referenced from:
      _av_videotoolbox_default_init2 in libavcodec.a(videotoolbox.o)
      _ff_vda_create_decoder in libavcodec.a(vda_h264.o)
      _ff_vda_default_init in libavcodec.a(vda_h264.o)
  "_kCFTypeDictionaryValueCallBacks", referenced from:
      _av_videotoolbox_default_init2 in libavcodec.a(videotoolbox.o)
      _ff_vda_create_decoder in libavcodec.a(vda_h264.o)
      _ff_vda_default_init in libavcodec.a(vda_h264.o)
  "_kCMFormatDescriptionExtension_SampleDescriptionExtensionAtoms", referenced from:
      _av_videotoolbox_default_init2 in libavcodec.a(videotoolbox.o)
  "_kCVPixelBufferHeightKey", referenced from:
      _av_videotoolbox_default_init2 in libavcodec.a(videotoolbox.o)
  "_kCVPixelBufferIOSurfacePropertiesKey", referenced from:
      _av_videotoolbox_default_init2 in libavcodec.a(videotoolbox.o)
      _ff_vda_create_decoder in libavcodec.a(vda_h264.o)
      _ff_vda_default_init in libavcodec.a(vda_h264.o)
  "_kCVPixelBufferPixelFormatTypeKey", referenced from:
      _av_videotoolbox_default_init2 in libavcodec.a(videotoolbox.o)
      _ff_vda_create_decoder in libavcodec.a(vda_h264.o)
      _ff_vda_default_init in libavcodec.a(vda_h264.o)
  "_kCVPixelBufferWidthKey", referenced from:
      _av_videotoolbox_default_init2 in libavcodec.a(videotoolbox.o)
  "_kVDADecoderConfiguration_Height", referenced from:
      _ff_vda_create_decoder in libavcodec.a(vda_h264.o)
      _ff_vda_default_init in libavcodec.a(vda_h264.o)
  "_kVDADecoderConfiguration_SourceFormat", referenced from:
      _ff_vda_create_decoder in libavcodec.a(vda_h264.o)
      _ff_vda_default_init in libavcodec.a(vda_h264.o)
  "_kVDADecoderConfiguration_Width", referenced from:
      _ff_vda_create_decoder in libavcodec.a(vda_h264.o)
      _ff_vda_default_init in libavcodec.a(vda_h264.o)
  "_kVDADecoderConfiguration_avcCData", referenced from:
      _ff_vda_create_decoder in libavcodec.a(vda_h264.o)
      _ff_vda_default_init in libavcodec.a(vda_h264.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [qt29fftest.app/Contents/MacOS/qt29fftest] Error 1
12:58:39: 进程"/usr/bin/make"退出,退出代码 2 。
Error while building/deploying project qt29fftest (kit: Desktop Qt 5.9.8 clang 64bit)
When executing step "Make"

解决方法========================================

编译


./configure --yasmexe=/Users/codew/Desktop/code/yasm/yasmB/yasm-1.3.0/bin/yasm --cc=/usr/bin/gcc  --arch=x86_64 --target-os=darwin --prefix=output/x86_64 --disable-ffmpeg --disable-ffplay --disable-ffprobe  --disable-iconv --disable-bzlib --enable-avresample --enable-avresample --enable-pic --disable-doc --disable-decoders --enable-decoder=h264 --enable-decoder=mjpeg --disable-encoders --disable-demuxers --enable-demuxer=mp4 --disable-muxers --enable-muxer=mp4 --disable-filters --disable-videotoolbox --enable-gpl --enable-nonfree --disable-securetransport --disable-zlib

QTPro


#-------------------------------------------------
#
# Project created by QtCreator 2020-11-22T17:38:20
#
#-------------------------------------------------

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = qt29fftest
TEMPLATE = app

win32{

}

macx{



INCLUDEPATH += /Users/codew/Desktop/qt/file/lib/13/libFFmpeg/include
LIBS += -L/Users/codew/Desktop/qt/file/lib/13/libFFmpeg/lib

LIBS += -lavcodec \
        -lavdevice \
        -lavfilter \
        -lavformat \
        -lavutil \
        -lswresample \
        -lswscale





#LIBS += -lavcodec   \
#        -lavdevice  \
#        -lavfilter  \
#        -lavformat  \
#        -lavutil    \
#        -lswscale

}

# The following define makes your compiler emit warnings if you use
# any feature of Qt which has been marked as deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS

# You can also make your code fail to compile if you use deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0

CONFIG += c++11

SOURCES += \
        main.cpp \
        mainwindow.cpp

HEADERS += \
        mainwindow.h

FORMS += \
        mainwindow.ui

# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target


你可能感兴趣的:(qt FFmpeg Mac symbol(s) not found for architecture x86_64)