C++ 在Mac上使用FFMPEG而不是Quicktime编译OpenCV
我正在开发一些代码,这些代码将使用OpenCV和FFMPEG在Linux上运行。我想用我的Mac开发这段代码,我需要Mac上的FFMPEG功能 我已经能够像这样运行配置:C++ 在Mac上使用FFMPEG而不是Quicktime编译OpenCV,c++,macos,opencv,ffmpeg,g++,C++,Macos,Opencv,Ffmpeg,G++,我正在开发一些代码,这些代码将使用OpenCV和FFMPEG在Linux上运行。我想用我的Mac开发这段代码,我需要Mac上的FFMPEG功能 我已经能够像这样运行配置: ./configure --without-quicktime --with-ffmpeg --without-python --disable-apps CPPFLAGS=-I/opt/local/include LDFLAGS="-L/opt/local/lib -L/usr/local/share -L/usr/loca
./configure --without-quicktime --with-ffmpeg --without-python --disable-apps CPPFLAGS=-I/opt/local/include LDFLAGS="-L/opt/local/lib -L/usr/local/share -L/usr/local/lib"
但当我运行make时,我会出现以下错误:
Extracting /Users/adamb/opencv/trunk/opencv/src/./.libs/lib_cxcore.a
(cd .libs/libcxcore.lax/lib_cxcore.a && ar x /Users/adamb/opencv/trunk/opencv/src/./.libs/lib_cxcore.a)
g++ -dynamiclib -single_module -o .libs/libcxcore.2.dylib .libs/dummy.o .libs/libcxcore.lax/lib_cxcore.a/cxalloc.o .libs/libcxcore.lax/lib_cxcore.a/cxarithm.o .libs/libcxcore.lax/lib_cxcore.a/cxarray.o .libs/libcxcore.lax/lib_cxcore.a/cxcmp.o .libs/libcxcore.lax/lib_cxcore.a/cxconvert.o .libs/libcxcore.lax/lib_cxcore.a/cxcopy.o .libs/libcxcore.lax/lib_cxcore.a/cxdatastructs.o .libs/libcxcore.lax/lib_cxcore.a/cxdrawing.o .libs/libcxcore.lax/lib_cxcore.a/cxdxt.o .libs/libcxcore.lax/lib_cxcore.a/cxerror.o .libs/libcxcore.lax/lib_cxcore.a/cximage.o .libs/libcxcore.lax/lib_cxcore.a/cxlapack.o .libs/libcxcore.lax/lib_cxcore.a/cxlogic.o .libs/libcxcore.lax/lib_cxcore.a/cxlut.o .libs/libcxcore.lax/lib_cxcore.a/cxmathfuncs.o .libs/libcxcore.lax/lib_cxcore.a/cxmatmul.o .libs/libcxcore.lax/lib_cxcore.a/cxmatrix.o .libs/libcxcore.lax/lib_cxcore.a/cxmean.o .libs/libcxcore.lax/lib_cxcore.a/cxmeansdv.o .libs/libcxcore.lax/lib_cxcore.a/cxminmaxloc.o .libs/libcxcore.lax/lib_cxcore.a/cxnorm.o .libs/libcxcore.lax/lib_cxcore.a/cxouttext.o .libs/libcxcore.lax/lib_cxcore.a/cxpersistence.o .libs/libcxcore.lax/lib_cxcore.a/cxrand.o .libs/libcxcore.lax/lib_cxcore.a/cxsumpixels.o .libs/libcxcore.lax/lib_cxcore.a/cxsvd.o .libs/libcxcore.lax/lib_cxcore.a/cxswitcher.o .libs/libcxcore.lax/lib_cxcore.a/cxtables.o .libs/libcxcore.lax/lib_cxcore.a/cxutils.o -L/opt/local/lib -L/usr/local/share -L/usr/local/lib -lavformat -lavcodec -lpthread -ldl -lm -march=prescott -msse -install_name /usr/local/lib/libcxcore.2.dylib -Wl,-compatibility_version -Wl,3 -Wl,-current_version -Wl,3.0
Undefined symbols:
"_dgesdd_", referenced from:
_cvSVD in cxsvd.o
_cvSVD in cxsvd.o
"_sgelsd_", referenced from:
_cvSolve in cxlapack.o
_cvSolve in cxlapack.o
"_ssyevr_", referenced from:
_cvEigenVV in cxlapack.o
_cvEigenVV in cxlapack.o
"_dgetrf_", referenced from:
_cvDet in cxlapack.o
_cvInvert in cxlapack.o
"_dgetri_", referenced from:
_cvInvert in cxlapack.o
_cvInvert in cxlapack.o
"_sgesdd_", referenced from:
_cvSVD in cxsvd.o
_cvSVD in cxsvd.o
"_dgels_", referenced from:
_cvSolve in cxlapack.o
_cvSolve in cxlapack.o
"_dgesv_", referenced from:
_cvSolve in cxlapack.o
"_sgetrf_", referenced from:
_cvDet in cxlapack.o
_cvInvert in cxlapack.o
"_sgetri_", referenced from:
_cvInvert in cxlapack.o
_cvInvert in cxlapack.o
"_dpotrf_", referenced from:
_cvInvert in cxlapack.o
_cvSolve in cxlapack.o
"_dpotri_", referenced from:
_cvInvert in cxlapack.o
"_dpotrs_", referenced from:
_cvSolve in cxlapack.o
"_sgels_", referenced from:
_cvSolve in cxlapack.o
_cvSolve in cxlapack.o
"_spotrf_", referenced from:
_cvInvert in cxlapack.o
_cvSolve in cxlapack.o
"_spotri_", referenced from:
_cvInvert in cxlapack.o
"_sgesv_", referenced from:
_cvSolve in cxlapack.o
"_spotrs_", referenced from:
_cvSolve in cxlapack.o
"_dgelsd_", referenced from:
_cvSolve in cxlapack.o
_cvSolve in cxlapack.o
"_dsyevr_", referenced from:
_cvEigenVV in cxlapack.o
_cvEigenVV in cxlapack.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make[2]: *** [libcxcore.la] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
正在提取/Users/adamb/opencv/trunk/opencv/src/.libs/lib_cxcore.a
(cd.libs/libcxcore.lax/lib_cxcore.a&&ar x/Users/adamb/opencv/trunk/opencv/src/.libs/lib_cxcore.a)
g++-dynamiclib-single_module-o.libs/libcxcore.2.dylib.libs/dummy.o.libs/libcxcore.lax/cxalloc.o.libs/libcxcore.lax/lib_cxcore.a/cxarithm.o.libs/libcxcore.lax/lib_cxcore.a/cxcore.a/cxarray.o.libs/libcxcore/libcxcore.a/libcxcore.lax/libs/libcxcore.a/libcxcore/libcxcore/libcxcore.a/lib/cxcore/cxco/cxcore/cxcore/cxcore.a/cxx.libs/libcxcore.lax/lib_cxcore.a/cxdatastructs.o.libs/libcxcore.lax/libcxcore.lax/lib_cxcore.o.libs/libcxcore.lax/lib_cxcore.a/cxerror.o.libs/libcxcore.lax/libu cxcore.a/cximage.o.o.libs/libcxcore/libcxcore.lax/libcxcore.a/lapack.o.o.libs/libs/libcxcore.lib/lib/lib/libcxcore.o/lib/lib/cxcore.o/lib.libs/libcxcore.lax/lib_cxcore.a/cxmathfuncs.o.libs/libcxcore.lax/cxmatmul.o.libs/libcxcore.lax/lib_cxcore.a/cxmatrix.o.libs/libcxcore.lax/lib_cxcore.o.libs/libcxcore.lax/lib_cxcore.a/cxmeansdv.o.libs/libcxcore.o/libs/libcxcore.libs/libcxcore.lax/lib_cxcore.a/cxouttext.o.libs/libcxcore.lax/libcxcore.o.libs/libcxcore.lax/lib_cxcore.a/cxrand.o.libs/libcxcore.lax/lib_cxcore.o.libs/libcxcore.a/cxsvd.o.libs/libcxcore.a/libcxcore.o/libcxcore.o/libcxcore.o/libcxcore.libs/libcxcore.lax/lib_cxcore.a/cxutils.o-L/opt/local/lib-L/usr/local/share-L/usr/local/lib-lavformat-lavcodec-lpthread-ldl-lm-march=prescott-msse-install_name/usr/local/libcxcore.2.dylib-Wl,-兼容版本-Wl,3-Wl,-当前版本-Wl,3.0
未定义的符号:
“_dgesdd_”,引用自:
_cxsvd.o中的cvSVD
_cxsvd.o中的cvSVD
“_sgelsd_”,引用自:
_cxlapack.o中的cvSolve
_cxlapack.o中的cvSolve
“ssyevr”引用自:
_cxlapack.o中的CVVv
_cxlapack.o中的CVVv
“_dgetrf_”,引用自:
_cxlapack.o中的cvDet
_cxlapack.o中的cvInvert
“_dgetri_”,引用自:
_cxlapack.o中的cvInvert
_cxlapack.o中的cvInvert
“_sgesdd_u”,引用自:
_cxsvd.o中的cvSVD
_cxsvd.o中的cvSVD
“_dgels_”,引用自:
_cxlapack.o中的cvSolve
_cxlapack.o中的cvSolve
“_dgesv_”,引用自:
_cxlapack.o中的cvSolve
“_sgetrf_”,引用自:
_cxlapack.o中的cvDet
_cxlapack.o中的cvInvert
“_sgetri_”,引用自:
_cxlapack.o中的cvInvert
_cxlapack.o中的cvInvert
“_dpotrf_”,引用自:
_cxlapack.o中的cvInvert
_cxlapack.o中的cvSolve
“_dpotri_”,引用自:
_cxlapack.o中的cvInvert
“项目”,引用自:
_cxlapack.o中的cvSolve
“_sgels_”,引用自:
_cxlapack.o中的cvSolve
_cxlapack.o中的cvSolve
“_spotrf_u”,引用自:
_cxlapack.o中的cvInvert
_cxlapack.o中的cvSolve
“_spotri_”,引用自:
_cxlapack.o中的cvInvert
“_sgesv_”,引用自:
_cxlapack.o中的cvSolve
“_spotrs_uu”,引用自:
_cxlapack.o中的cvSolve
“_dgelsd_”,引用自:
_cxlapack.o中的cvSolve
_cxlapack.o中的cvSolve
“_dsyevr_u”,引用自:
_cxlapack.o中的CVVv
_cxlapack.o中的CVVv
ld:找不到符号
collect2:ld返回了1个退出状态
生成[2]:***[libcxcore.la]错误1
生成[1]:***[all recursive]错误1
make:**[全部]错误2
我尝试使用更新版本的OpenCV,1.1pre1,我得到了一个类似的错误,但符号不同。我使用与上面相同的./configure
Extracting /Users/adamb/Downloads/opencv-1.1.0/otherlibs/highgui/./.libs/lib_highgui.a
(cd .libs/libhighgui.lax/lib_highgui.a && ar x /Users/adamb/Downloads/opencv-1.1.0/otherlibs/highgui/./.libs/lib_highgui.a)
g++ -dynamiclib -o .libs/libhighgui.2.0.0.dylib .libs/dummy.o .libs/libhighgui.lax/lib_highgui.a/bitstrm.o .libs/libhighgui.lax/lib_highgui.a/cvcap.o .libs/libhighgui.lax/lib_highgui.a/cvcap_ffmpeg.o .libs/libhighgui.lax/lib_highgui.a/cvcap_images.o .libs/libhighgui.lax/lib_highgui.a/grfmt_base.o .libs/libhighgui.lax/lib_highgui.a/grfmt_bmp.o .libs/libhighgui.lax/lib_highgui.a/grfmt_exr.o .libs/libhighgui.lax/lib_highgui.a/grfmt_imageio.o .libs/libhighgui.lax/lib_highgui.a/grfmt_jpeg.o .libs/libhighgui.lax/lib_highgui.a/grfmt_jpeg2000.o .libs/libhighgui.lax/lib_highgui.a/grfmt_png.o .libs/libhighgui.lax/lib_highgui.a/grfmt_pxm.o .libs/libhighgui.lax/lib_highgui.a/grfmt_sunras.o .libs/libhighgui.lax/lib_highgui.a/grfmt_tiff.o .libs/libhighgui.lax/lib_highgui.a/image.o .libs/libhighgui.lax/lib_highgui.a/loadsave.o .libs/libhighgui.lax/lib_highgui.a/precomp.o .libs/libhighgui.lax/lib_highgui.a/utils.o .libs/libhighgui.lax/lib_highgui.a/window.o .libs/libhighgui.lax/lib_highgui.a/window_carbon.o -L/opt/local/lib -L/usr/local/share -L/usr/local/lib ../../cxcore/src/.libs/libcxcore.dylib /opt/local/lib/libavformat.dylib /opt/local/lib/libavcodec.dylib ../../cv/src/.libs/libcv.dylib /Users/adamb/Downloads/opencv-1.1.0/cxcore/src/.libs/libcxcore.dylib /opt/local/lib/libjasper.dylib /opt/local/lib/libjpeg.dylib -lavformat -lavcodec -lpthread -ldl -lm -march=prescott -msse2 -framework ApplicationServices -Wl,-framework -Wl,Carbon -install_name /usr/local/lib/libhighgui.2.dylib -compatibility_version 3 -current_version 3.0 -Wl,-single_module
Undefined symbols:
"_av_rescale_q", referenced from:
icv_av_write_frame_FFMPEG(AVFormatContext*, AVStream*, unsigned char*, unsigned int, AVFrame*)in cvcap_ffmpeg.o
"_img_convert", referenced from:
CvCapture_FFMPEG::retrieveFrame() in cvcap_ffmpeg.o
CvVideoWriter_FFMPEG::writeFrame(_IplImage const*) in cvcap_ffmpeg.o
"_av_free", referenced from:
icv_alloc_picture_FFMPEG(int, int, int, bool)in cvcap_ffmpeg.o
CvVideoWriter_FFMPEG::close() in cvcap_ffmpeg.o
CvVideoWriter_FFMPEG::close() in cvcap_ffmpeg.o
CvVideoWriter_FFMPEG::close() in cvcap_ffmpeg.o
CvVideoWriter_FFMPEG::close() in cvcap_ffmpeg.o
CvCapture_FFMPEG::close() in cvcap_ffmpeg.o
"_av_freep", referenced from:
CvVideoWriter_FFMPEG::close() in cvcap_ffmpeg.o
CvVideoWriter_FFMPEG::close() in cvcap_ffmpeg.o
"_av_malloc", referenced from:
CvVideoWriter_FFMPEG::open(char const*, int, double, CvSize, bool)in cvcap_ffmpeg.o
"_av_sub_q", referenced from:
CvVideoWriter_FFMPEG::open(char const*, int, double, CvSize, bool)in cvcap_ffmpeg.o
ld: symbol(s) not found
Extracting/Users/adamb/Downloads/opencv-1.1.0/otherlibs/highgui/.libs/lib_highgui.a
(cd.libs/libhighgui.lax/lib_highgui.a&&ar x/Users/adamb/Downloads/opencv-1.1.0/otherlibs/highgui/.libs/lib_highgui.a)
g++-dynamiclib-o.libs/libhighgui.2.0.0.dylib.libs/dummy.o.libs/libhighgui.lax/libu highgui.a/bitstrm.o.libs/libhighgui.a/cvcap.o.libs/libhighgui.lax/lib\u highgui.a/cvcap/ffmpeg.o.libs/libhighgui/libhighgui.a/cvcap/a/cvcap/lib\highgui.a/fmgru highgui.fm/lib/lib/libhighgui.fm/lib图书馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆馆太阳神.libs/libhighgui.lax/lib_highgui.a/grfmt_tiff.o.libs/libhighgui.lax/libhighgui.a/image.o.libs/lib_highgui.a/loadsave.o.libs/libhighgui.lax/lib_highgui.a/precomp.o.libs/libhighgui.a/utils.o.libs/libhighgui/libhighgui.o.lax/lib/libhighgui.a/window/window.o/lib/libhighgui/L/L/L/L/L/L/L/L-L/usr/local/share-L/usr/local/lib.././cxcore/src/.libs/libcxcore.dylib/opt/local/libavformat.dylib/opt/local/libavcodec.dylib../.cv/src/.libs/libs/libcv.dylib/Users/adamb/Downloads/opencv-1.1.0/cxcore/src/.libs/libcxcore.dylib/opt/local/lib/lib/lib/libjasper.dylibjasper.dylib/opt/local/lib/libjpeg.dylib/lib/lib/lib/lib/lib/lib/-march=prescott-msse2-framework ApplicationServices-Wl,-framework-Wl,Carbon-安装\u name/usr/local/lib/libhighgui.2.dylib-兼容性\u版本3-当前\u版本3.0-Wl,-单个\u模块
未定义的符号:
“_av_rescale_q”,引用自:
cvcap_FFMPEG.o中的icv_av_write_frame_FFMPEG(AVFormatContext*、AVStream*、unsigned char*、unsigned int、AVFrame*)
“\u img\u convert”,引用自: