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