OpenCV未解决的外部符号 - 是否需要其他库?

14

我正在尝试使用OpenCV 2.3.1创建一个视频捕获和处理应用程序。我从这里下载了预编译库,然后尝试使用下载文件夹中的build\x86\vc10\staticlib中找到的静态库进行测试应用程序的编译。在尝试编译时,Visual Studio显示了下面所示的链接器错误。以前我使用过libpng、gzip和其他一些库,我在链接器错误中识别出了这些库的函数。

使用OpenCV的预编译库是否也需要我链接libpng、libjpeg、gzip和其他库,或者我是遗漏了什么?

1>opencv_core231d.lib(persistence.obj) : error LNK2019: unresolved external symbol _gzputs referenced in function "void __cdecl icvPuts(struct CvFileStorage *,char const *)" (?icvPuts@@YAXPAUCvFileStorage@@PBD@Z)
1>opencv_core231d.lib(persistence.obj) : error LNK2019: unresolved external symbol _gzclose referenced in function "void __cdecl icvClose(struct CvFileStorage *)" (?icvClose@@YAXPAUCvFileStorage@@@Z)
1>opencv_core231d.lib(persistence.obj) : error LNK2019: unresolved external symbol _gzopen referenced in function _cvOpenFileStorage
1>opencv_core231d.lib(persistence.obj) : error LNK2019: unresolved external symbol _gzgets referenced in function "char * __cdecl icvGets(struct CvFileStorage *,char *,int)" (?icvGets@@YAPADPAUCvFileStorage@@PADH@Z)
1>opencv_core231d.lib(persistence.obj) : error LNK2019: unresolved external symbol _gzrewind referenced in function "void __cdecl icvRewind(struct CvFileStorage *)" (?icvRewind@@YAXPAUCvFileStorage@@@Z)
1>opencv_core231d.lib(persistence.obj) : error LNK2019: unresolved external symbol _gzeof referenced in function "int __cdecl icvEof(struct CvFileStorage *)" (?icvEof@@YAHPAUCvFileStorage@@@Z)
1>opencv_highgui231d.lib(window_w32.obj) : error LNK2019: unresolved external symbol __imp__CreateToolbarEx@52 referenced in function "int __cdecl icvCreateTrackbar(char const *,char const *,int *,int,void (__cdecl*)(int),void (__cdecl*)(int,void *),void *)" (?icvCreateTrackbar@@YAHPBD0PAHHP6AXH@ZP6AXHPAX@Z3@Z)
1>opencv_highgui231d.lib(cap_vfw.obj) : error LNK2019: unresolved external symbol _AVIFileRelease@4 referenced in function "public: virtual void __thiscall CvCaptureAVI_VFW::close(void)" (?close@CvCaptureAVI_VFW@@UAEXXZ)
1>opencv_highgui231d.lib(cap_vfw.obj) : error LNK2019: unresolved external symbol _AVIStreamRelease@4 referenced in function "public: virtual void __thiscall CvCaptureAVI_VFW::close(void)" (?close@CvCaptureAVI_VFW@@UAEXXZ)
1>opencv_highgui231d.lib(cap_vfw.obj) : error LNK2019: unresolved external symbol _AVIStreamGetFrameClose@4 referenced in function "public: virtual void __thiscall CvCaptureAVI_VFW::close(void)" (?close@CvCaptureAVI_VFW@@UAEXXZ)
1>opencv_highgui231d.lib(cap_vfw.obj) : error LNK2019: unresolved external symbol _AVIStreamGetFrameOpen@8 referenced in function "public: virtual bool __thiscall CvCaptureAVI_VFW::open(char const *)" (?open@CvCaptureAVI_VFW@@UAE_NPBD@Z)
1>opencv_highgui231d.lib(cap_vfw.obj) : error LNK2019: unresolved external symbol _AVIStreamInfoA@12 referenced in function "public: virtual bool __thiscall CvCaptureAVI_VFW::open(char const *)" (?open@CvCaptureAVI_VFW@@UAE_NPBD@Z)
1>opencv_highgui231d.lib(cap_vfw.obj) : error LNK2019: unresolved external symbol _AVIFileGetStream@16 referenced in function "public: virtual bool __thiscall CvCaptureAVI_VFW::open(char const *)" (?open@CvCaptureAVI_VFW@@UAE_NPBD@Z)
1>opencv_highgui231d.lib(cap_vfw.obj) : error LNK2019: unresolved external symbol _AVIFileOpenA@16 referenced in function "public: virtual bool __thiscall CvCaptureAVI_VFW::open(char const *)" (?open@CvCaptureAVI_VFW@@UAE_NPBD@Z)
1>opencv_highgui231d.lib(cap_vfw.obj) : error LNK2019: unresolved external symbol _AVIFileInit@0 referenced in function "void __cdecl icvInitCapture_VFW(void)" (?icvInitCapture_VFW@@YAXXZ)
1>opencv_highgui231d.lib(cap_vfw.obj) : error LNK2019: unresolved external symbol _AVIStreamGetFrame@8 referenced in function "public: virtual bool __thiscall CvCaptureAVI_VFW::grabFrame(void)" (?grabFrame@CvCaptureAVI_VFW@@UAE_NXZ)
1>opencv_highgui231d.lib(cap_vfw.obj) : error LNK2019: unresolved external symbol _ICClose@4 referenced in function "protected: void __thiscall CvCaptureCAM_VFW::closeHIC(void)" (?closeHIC@CvCaptureCAM_VFW@@IAEXXZ)
1>opencv_highgui231d.lib(cap_vfw.obj) : error LNK2019: unresolved external symbol _ICSendMessage@16 referenced in function "protected: void __thiscall CvCaptureCAM_VFW::closeHIC(void)" (?closeHIC@CvCaptureCAM_VFW@@IAEXXZ)
1>opencv_highgui231d.lib(cap_vfw.obj) : error LNK2019: unresolved external symbol _capCreateCaptureWindowA@32 referenced in function "public: virtual bool __thiscall CvCaptureCAM_VFW::open(int)" (?open@CvCaptureCAM_VFW@@UAE_NH@Z)
1>opencv_highgui231d.lib(cap_vfw.obj) : error LNK2019: unresolved external symbol _capGetDriverDescriptionA@20 referenced in function "public: virtual bool __thiscall CvCaptureCAM_VFW::open(int)" (?open@CvCaptureCAM_VFW@@UAE_NH@Z)
1>opencv_highgui231d.lib(cap_vfw.obj) : error LNK2019: unresolved external symbol _ICDecompress referenced in function "public: virtual struct _IplImage * __thiscall CvCaptureCAM_VFW::retrieveFrame(int)" (?retrieveFrame@CvCaptureCAM_VFW@@UAEPAU_IplImage@@H@Z)
1>opencv_highgui231d.lib(cap_vfw.obj) : error LNK2019: unresolved external symbol _ICOpen@12 referenced in function "public: virtual struct _IplImage * __thiscall CvCaptureCAM_VFW::retrieveFrame(int)" (?retrieveFrame@CvCaptureCAM_VFW@@UAEPAU_IplImage@@H@Z)
1>opencv_highgui231d.lib(cap_vfw.obj) : error LNK2019: unresolved external symbol _AVIStreamSetFormat@16 referenced in function "protected: bool __thiscall CvVideoWriter_VFW::createStreams(struct CvSize,bool)" (?createStreams@CvVideoWriter_VFW@@IAE_NUCvSize@@_N@Z)
1>opencv_highgui231d.lib(cap_vfw.obj) : error LNK2019: unresolved external symbol _AVIMakeCompressedStream@16 referenced in function "protected: bool __thiscall CvVideoWriter_VFW::createStreams(struct CvSize,bool)" (?createStreams@CvVideoWriter_VFW@@IAE_NUCvSize@@_N@Z)
1>opencv_highgui231d.lib(cap_vfw.obj) : error LNK2019: unresolved external symbol _AVISaveOptions@20 referenced in function "protected: bool __thiscall CvVideoWriter_VFW::createStreams(struct CvSize,bool)" (?createStreams@CvVideoWriter_VFW@@IAE_NUCvSize@@_N@Z)
1>opencv_highgui231d.lib(cap_vfw.obj) : error LNK2019: unresolved external symbol _AVIFileCreateStreamA@12 referenced in function "protected: bool __thiscall CvVideoWriter_VFW::createStreams(struct CvSize,bool)" (?createStreams@CvVideoWriter_VFW@@IAE_NUCvSize@@_N@Z)
1>opencv_highgui231d.lib(cap_vfw.obj) : error LNK2019: unresolved external symbol _AVIStreamWrite@32 referenced in function "public: virtual bool __thiscall CvVideoWriter_VFW::writeFrame(struct _IplImage const *)" (?writeFrame@CvVideoWriter_VFW@@UAE_NPBU_IplImage@@@Z)
1>opencv_highgui231d.lib(grfmt_jpeg2000.obj) : error LNK2019: unresolved external symbol _jas_image_destroy referenced in function "public: void __thiscall cv::Jpeg2KDecoder::close(void)" (?close@Jpeg2KDecoder@cv@@QAEXXZ)
1>opencv_highgui231d.lib(grfmt_jpeg2000.obj) : error LNK2019: unresolved external symbol _jas_stream_close referenced in function "public: void __thiscall cv::Jpeg2KDecoder::close(void)" (?close@Jpeg2KDecoder@cv@@QAEXXZ)
1>opencv_highgui231d.lib(grfmt_jpeg2000.obj) : error LNK2019: unresolved external symbol _jas_image_decode referenced in function "public: virtual bool __thiscall cv::Jpeg2KDecoder::readHeader(void)" (?readHeader@Jpeg2KDecoder@cv@@UAE_NXZ)
1>opencv_highgui231d.lib(grfmt_jpeg2000.obj) : error LNK2019: unresolved external symbol _jas_stream_fopen referenced in function "public: virtual bool __thiscall cv::Jpeg2KDecoder::readHeader(void)" (?readHeader@Jpeg2KDecoder@cv@@UAE_NXZ)
1>opencv_highgui231d.lib(grfmt_jpeg2000.obj) : error LNK2019: unresolved external symbol _jas_matrix_destroy referenced in function "public: virtual bool __thiscall cv::Jpeg2KDecoder::readData(class cv::Mat &)" (?readData@Jpeg2KDecoder@cv@@UAE_NAAVMat@2@@Z)
1>opencv_highgui231d.lib(grfmt_jpeg2000.obj) : error LNK2019: unresolved external symbol _jas_image_readcmpt referenced in function "public: virtual bool __thiscall cv::Jpeg2KDecoder::readData(class cv::Mat &)" (?readData@Jpeg2KDecoder@cv@@UAE_NAAVMat@2@@Z)
1>opencv_highgui231d.lib(grfmt_jpeg2000.obj) : error LNK2019: unresolved external symbol _jas_matrix_create referenced in function "public: virtual bool __thiscall cv::Jpeg2KDecoder::readData(class cv::Mat &)" (?readData@Jpeg2KDecoder@cv@@UAE_NAAVMat@2@@Z)
1>opencv_highgui231d.lib(grfmt_jpeg2000.obj) : error LNK2019: unresolved external symbol _jas_image_getcmptbytype referenced in function "public: virtual bool __thiscall cv::Jpeg2KDecoder::readData(class cv::Mat &)" (?readData@Jpeg2KDecoder@cv@@UAE_NAAVMat@2@@Z)
1>opencv_highgui231d.lib(grfmt_jpeg2000.obj) : error LNK2019: unresolved external symbol _jas_cmprof_destroy referenced in function "public: virtual bool __thiscall cv::Jpeg2KDecoder::readData(class cv::Mat &)" (?readData@Jpeg2KDecoder@cv@@UAE_NAAVMat@2@@Z)
1>opencv_highgui231d.lib(grfmt_jpeg2000.obj) : error LNK2019: unresolved external symbol _jas_image_chclrspc referenced in function "public: virtual bool __thiscall cv::Jpeg2KDecoder::readData(class cv::Mat &)" (?readData@Jpeg2KDecoder@cv@@UAE_NAAVMat@2@@Z)
1>opencv_highgui231d.lib(grfmt_jpeg2000.obj) : error LNK2019: unresolved external symbol _jas_cmprof_createfromclrspc referenced in function "public: virtual bool __thiscall cv::Jpeg2KDecoder::readData(class cv::Mat &)" (?readData@Jpeg2KDecoder@cv@@UAE_NAAVMat@2@@Z)
1>opencv_highgui231d.lib(grfmt_jpeg2000.obj) : error LNK2019: unresolved external symbol _jas_image_encode referenced in function "public: virtual bool __thiscall cv::Jpeg2KEncoder::write(class cv::Mat const &,class std::vector<int,class std::allocator<int> > const &)" (?write@Jpeg2KEncoder@cv@@UAE_NABVMat@2@ABV?$vector@HV?$allocator@H@std@@@std@@@Z)
1>opencv_highgui231d.lib(grfmt_jpeg2000.obj) : error LNK2019: unresolved external symbol _jas_image_strtofmt referenced in function "public: virtual bool __thiscall cv::Jpeg2KEncoder::write(class cv::Mat const &,class std::vector<int,class std::allocator<int> > const &)" (?write@Jpeg2KEncoder@cv@@UAE_NABVMat@2@ABV?$vector@HV?$allocator@H@std@@@std@@@Z)
1>opencv_highgui231d.lib(grfmt_jpeg2000.obj) : error LNK2019: unresolved external symbol _jas_image_create referenced in function "public: virtual bool __thiscall cv::Jpeg2KEncoder::write(class cv::Mat const &,class std::vector<int,class std::allocator<int> > const &)" (?write@Jpeg2KEncoder@cv@@UAE_NABVMat@2@ABV?$vector@HV?$allocator@H@std@@@std@@@Z)
1>opencv_highgui231d.lib(grfmt_jpeg2000.obj) : error LNK2019: unresolved external symbol _jas_image_writecmpt referenced in function "protected: bool __thiscall cv::Jpeg2KEncoder::writeComponent8u(void *,class cv::Mat const &)" (?writeComponent8u@Jpeg2KEncoder@cv@@IAE_NPAXABVMat@2@@Z)
1>opencv_highgui231d.lib(grfmt_jpeg2000.obj) : error LNK2019: unresolved external symbol _jas_init referenced in function "public: __thiscall cv::JasperInitializer::JasperInitializer(void)" (??0JasperInitializer@cv@@QAE@XZ)
1>opencv_highgui231d.lib(grfmt_jpeg2000.obj) : error LNK2019: unresolved external symbol _jas_cleanup referenced in function "public: __thiscall cv::JasperInitializer::~JasperInitializer(void)" (??1JasperInitializer@cv@@QAE@XZ)
1>opencv_highgui231d.lib(grfmt_png.obj) : error LNK2019: unresolved external symbol _png_destroy_read_struct referenced in function "public: void __thiscall cv::PngDecoder::close(void)" (?close@PngDecoder@cv@@QAEXXZ)
1>opencv_highgui231d.lib(grfmt_png.obj) : error LNK2019: unresolved external symbol _png_error referenced in function "protected: static void __cdecl cv::PngDecoder::readDataFromBuf(void *,unsigned char *,unsigned int)" (?readDataFromBuf@PngDecoder@cv@@KAXPAXPAEI@Z)
1>opencv_highgui231d.lib(grfmt_png.obj) : error LNK2019: unresolved external symbol _png_get_io_ptr referenced in function "protected: static void __cdecl cv::PngDecoder::readDataFromBuf(void *,unsigned char *,unsigned int)" (?readDataFromBuf@PngDecoder@cv@@KAXPAXPAEI@Z)
1>opencv_highgui231d.lib(grfmt_png.obj) : error LNK2019: unresolved external symbol _png_get_IHDR referenced in function "public: virtual bool __thiscall cv::PngDecoder::readHeader(void)" (?readHeader@PngDecoder@cv@@UAE_NXZ)
1>opencv_highgui231d.lib(grfmt_png.obj) : error LNK2019: unresolved external symbol _png_read_info referenced in function "public: virtual bool __thiscall cv::PngDecoder::readHeader(void)" (?readHeader@PngDecoder@cv@@UAE_NXZ)
1>opencv_highgui231d.lib(grfmt_png.obj) : error LNK2019: unresolved external symbol _png_init_io referenced in function "public: virtual bool __thiscall cv::PngDecoder::readHeader(void)" (?readHeader@PngDecoder@cv@@UAE_NXZ)
1>opencv_highgui231d.lib(grfmt_png.obj) : error LNK2019: unresolved external symbol _png_set_read_fn referenced in function "public: virtual bool __thiscall cv::PngDecoder::readHeader(void)" (?readHeader@PngDecoder@cv@@UAE_NXZ)
1>opencv_highgui231d.lib(grfmt_png.obj) : error LNK2019: unresolved external symbol _png_set_longjmp_fn referenced in function "public: virtual bool __thiscall cv::PngDecoder::readHeader(void)" (?readHeader@PngDecoder@cv@@UAE_NXZ)
1>opencv_highgui231d.lib(grfmt_png.obj) : error LNK2019: unresolved external symbol _png_create_info_struct referenced in function "public: virtual bool __thiscall cv::PngDecoder::readHeader(void)" (?readHeader@PngDecoder@cv@@UAE_NXZ)
1>opencv_highgui231d.lib(grfmt_png.obj) : error LNK2019: unresolved external symbol _png_create_read_struct referenced in function "public: virtual bool __thiscall cv::PngDecoder::readHeader(void)" (?readHeader@PngDecoder@cv@@UAE_NXZ)
1>opencv_highgui231d.lib(grfmt_png.obj) : error LNK2019: unresolved external symbol _png_read_end referenced in function "public: virtual bool __thiscall cv::PngDecoder::readData(class cv::Mat &)" (?readData@PngDecoder@cv@@UAE_NAAVMat@2@@Z)
1>opencv_highgui231d.lib(grfmt_png.obj) : error LNK2019: unresolved external symbol _png_read_image referenced in function "public: virtual bool __thiscall cv::PngDecoder::readData(class cv::Mat &)" (?readData@PngDecoder@cv@@UAE_NAAVMat@2@@Z)
1>opencv_highgui231d.lib(grfmt_png.obj) : error LNK2019: unresolved external symbol _png_read_update_info referenced in function "public: virtual bool __thiscall cv::PngDecoder::readData(class cv::Mat &)" (?readData@PngDecoder@cv@@UAE_NAAVMat@2@@Z)
1>opencv_highgui231d.lib(grfmt_png.obj) : error LNK2019: unresolved external symbol _png_set_rgb_to_gray referenced in function "public: virtual bool __thiscall cv::PngDecoder::readData(class cv::Mat &)" (?readData@PngDecoder@cv@@UAE_NAAVMat@2@@Z)
1>opencv_highgui231d.lib(grfmt_png.obj) : error LNK2019: unresolved external symbol _png_set_gray_to_rgb referenced in function "public: virtual bool __thiscall cv::PngDecoder::readData(class cv::Mat &)" (?readData@PngDecoder@cv@@UAE_NAAVMat@2@@Z)
1>opencv_highgui231d.lib(grfmt_png.obj) : error LNK2019: unresolved external symbol _png_set_bgr referenced in function "public: virtual bool __thiscall cv::PngDecoder::readData(class cv::Mat &)" (?readData@PngDecoder@cv@@UAE_NAAVMat@2@@Z)
1>opencv_highgui231d.lib(grfmt_png.obj) : error LNK2019: unresolved external symbol _png_set_expand_gray_1_2_4_to_8 referenced in function "public: virtual bool __thiscall cv::PngDecoder::readData(class cv::Mat &)" (?readData@PngDecoder@cv@@UAE_NAAVMat@2@@Z)
1>opencv_highgui231d.lib(grfmt_png.obj) : error LNK2019: unresolved external symbol _png_set_palette_to_rgb referenced in function "public: virtual bool __thiscall cv::PngDecoder::readData(class cv::Mat &)" (?readData@PngDecoder@cv@@UAE_NAAVMat@2@@Z)
1>opencv_highgui231d.lib(grfmt_png.obj) : error LNK2019: unresolved external symbol _png_set_strip_alpha referenced in function "public: virtual bool __thiscall cv::PngDecoder::readData(class cv::Mat &)" (?readData@PngDecoder@cv@@UAE_NAAVMat@2@@Z)
1>opencv_highgui231d.lib(grfmt_png.obj) : error LNK2019: unresolved external symbol _png_set_swap referenced in function "public: virtual bool __thiscall cv::PngDecoder::readData(class cv::Mat &)" (?readData@PngDecoder@cv@@UAE_NAAVMat@2@@Z)
1>opencv_highgui231d.lib(grfmt_png.obj) : error LNK2019: unresolved external symbol _png_set_strip_16 referenced in function "public: virtual bool __thiscall cv::PngDecoder::readData(class cv::Mat &)" (?readData@PngDecoder@cv@@UAE_NAAVMat@2@@Z)
1>opencv_highgui231d.lib(grfmt_png.obj) : error LNK2019: unresolved external symbol _png_destroy_write_struct referenced in function "public: virtual bool __thiscall cv::PngEncoder::write(class cv::Mat const &,class std::vector<int,class std::allocator<int> > const &)" (?write@PngEncoder@cv@@UAE_NABVMat@2@ABV?$vector@HV?$allocator@H@std@@@std@@@Z)
1>opencv_highgui231d.lib(grfmt_png.obj) : error LNK2019: unresolved external symbol _png_write_end referenced in function "public: virtual bool __thiscall cv::PngEncoder::write(class cv::Mat const &,class std::vector<int,class std::allocator<int> > const &)" (?write@PngEncoder@cv@@UAE_NABVMat@2@ABV?$vector@HV?$allocator@H@std@@@std@@@Z)
1>opencv_highgui231d.lib(grfmt_png.obj) : error LNK2019: unresolved external symbol _png_write_image referenced in function "public: virtual bool __thiscall cv::PngEncoder::write(class cv::Mat const &,class std::vector<int,class std::allocator<int> > const &)" (?write@PngEncoder@cv@@UAE_NABVMat@2@ABV?$vector@HV?$allocator@H@std@@@std@@@Z)
1>opencv_highgui231d.lib(grfmt_png.obj) : error LNK2019: unresolved external symbol _png_write_info referenced in function "public: virtual bool __thiscall cv::PngEncoder::write(class cv::Mat const &,class std::vector<int,class std::allocator<int> > const &)" (?write@PngEncoder@cv@@UAE_NABVMat@2@ABV?$vector@HV?$allocator@H@std@@@std@@@Z)
1>opencv_highgui231d.lib(grfmt_png.obj) : error LNK2019: unresolved external symbol _png_set_IHDR referenced in function "public: virtual bool __thiscall cv::PngEncoder::write(class cv::Mat const &,class std::vector<int,class std::allocator<int> > const &)" (?write@PngEncoder@cv@@UAE_NABVMat@2@ABV?$vector@HV?$allocator@H@std@@@std@@@Z)
1>opencv_highgui231d.lib(grfmt_png.obj) : error LNK2019: unresolved external symbol _png_set_compression_strategy referenced in function "public: virtual bool __thiscall cv::PngEncoder::write(class cv::Mat const &,class std::vector<int,class std::allocator<int> > const &)" (?write@PngEncoder@cv@@UAE_NABVMat@2@ABV?$vector@HV?$allocator@H@std@@@std@@@Z)
1>opencv_highgui231d.lib(grfmt_png.obj) : error LNK2019: unresolved external symbol _png_set_compression_level referenced in function "public: virtual bool __thiscall cv::PngEncoder::write(class cv::Mat const &,class std::vector<int,class std::allocator<int> > const &)" (?write@PngEncoder@cv@@UAE_NABVMat@2@ABV?$vector@HV?$allocator@H@std@@@std@@@Z)
1>opencv_highgui231d.lib(grfmt_png.obj) : error LNK2019: unresolved external symbol _png_set_filter referenced in function "public: virtual bool __thiscall cv::PngEncoder::write(class cv::Mat const &,class std::vector<int,class std::allocator<int> > const &)" (?write@PngEncoder@cv@@UAE_NABVMat@2@ABV?$vector@HV?$allocator@H@std@@@std@@@Z)
1>opencv_highgui231d.lib(grfmt_png.obj) : error LNK2019: unresolved external symbol _png_set_compression_mem_level referenced in function "public: virtual bool __thiscall cv::PngEncoder::write(class cv::Mat const &,class std::vector<int,class std::allocator<int> > const &)" (?write@PngEncoder@cv@@UAE_NABVMat@2@ABV?$vector@HV?$allocator@H@std@@@std@@@Z)
1>opencv_highgui231d.lib(grfmt_png.obj) : error LNK2019: unresolved external symbol _png_set_write_fn referenced in function "public: virtual bool __thiscall cv::PngEncoder::write(class cv::Mat const &,class std::vector<int,class std::allocator<int> > const &)" (?write@PngEncoder@cv@@UAE_NABVMat@2@ABV?$vector@HV?$allocator@H@std@@@std@@@Z)
1>opencv_highgui231d.lib(grfmt_png.obj) : error LNK2019: unresolved external symbol _png_create_write_struct referenced in function "public: virtual bool __thiscall cv::PngEncoder::write(class cv::Mat const &,class std::vector<int,class std::allocator<int> > const &)" (?write@PngEncoder@cv@@UAE_NABVMat@2@ABV?$vector@HV?$allocator@H@std@@@std@@@Z)
1>opencv_highgui231d.lib(grfmt_tiff.obj) : error LNK2019: unresolved external symbol _TIFFSetWarningHandler referenced in function "public: __thiscall cv::TiffDecoder::TiffDecoder(void)" (??0TiffDecoder@cv@@QAE@XZ)
1>opencv_highgui231d.lib(grfmt_tiff.obj) : error LNK2019: unresolved external symbol _TIFFSetErrorHandler referenced in function "public: __thiscall cv::TiffDecoder::TiffDecoder(void)" (??0TiffDecoder@cv@@QAE@XZ)
1>opencv_highgui231d.lib(grfmt_tiff.obj) : error LNK2019: unresolved external symbol _TIFFClose referenced in function "public: void __thiscall cv::TiffDecoder::close(void)" (?close@TiffDecoder@cv@@QAEXXZ)
1>opencv_highgui231d.lib(grfmt_tiff.obj) : error LNK2019: unresolved external symbol _TIFFGetField referenced in function "public: virtual bool __thiscall cv::TiffDecoder::readHeader(void)" (?readHeader@TiffDecoder@cv@@UAE_NXZ)
1>opencv_highgui231d.lib(grfmt_tiff.obj) : error LNK2019: unresolved external symbol _TIFFOpen referenced in function "public: virtual bool __thiscall cv::TiffDecoder::readHeader(void)" (?readHeader@TiffDecoder@cv@@UAE_NXZ)
1>opencv_highgui231d.lib(grfmt_tiff.obj) : error LNK2019: unresolved external symbol _TIFFReadEncodedTile referenced in function "public: virtual bool __thiscall cv::TiffDecoder::readData(class cv::Mat &)" (?readData@TiffDecoder@cv@@UAE_NAAVMat@2@@Z)
1>opencv_highgui231d.lib(grfmt_tiff.obj) : error LNK2019: unresolved external symbol _TIFFReadEncodedStrip referenced in function "public: virtual bool __thiscall cv::TiffDecoder::readData(class cv::Mat &)" (?readData@TiffDecoder@cv@@UAE_NAAVMat@2@@Z)
1>opencv_highgui231d.lib(grfmt_tiff.obj) : error LNK2019: unresolved external symbol _TIFFReadRGBATile referenced in function "public: virtual bool __thiscall cv::TiffDecoder::readData(class cv::Mat &)" (?readData@TiffDecoder@cv@@UAE_NAAVMat@2@@Z)
1>opencv_highgui231d.lib(grfmt_tiff.obj) : error LNK2019: unresolved external symbol _TIFFReadRGBAStrip referenced in function "public: virtual bool __thiscall cv::TiffDecoder::readData(class cv::Mat &)" (?readData@TiffDecoder@cv@@UAE_NAAVMat@2@@Z)
1>opencv_highgui231d.lib(grfmt_tiff.obj) : error LNK2019: unresolved external symbol _TIFFRGBAImageOK referenced in function "public: virtual bool __thiscall cv::TiffDecoder::readData(class cv::Mat &)" (?readData@TiffDecoder@cv@@UAE_NAAVMat@2@@Z)
1>opencv_highgui231d.lib(grfmt_tiff.obj) : error LNK2019: unresolved external symbol _TIFFIsTiled referenced in function "public: virtual bool __thiscall cv::TiffDecoder::readData(class cv::Mat &)" (?readData@TiffDecoder@cv@@UAE_NAAVMat@2@@Z)
1>opencv_highgui231d.lib(grfmt_tiff.obj) : error LNK2019: unresolved external symbol _TIFFWriteScanline referenced in function "protected: bool __thiscall cv::TiffEncoder::writeLibTiff(class cv::Mat const &,class std::vector<int,class std::allocator<int> > const &)" (?writeLibTiff@TiffEncoder@cv@@IAE_NABVMat@2@ABV?$vector@HV?$allocator@H@std@@@std@@@Z)
1>opencv_highgui231d.lib(grfmt_tiff.obj) : error LNK2019: unresolved external symbol _TIFFScanlineSize referenced in function "protected: bool __thiscall cv::TiffEncoder::writeLibTiff(class cv::Mat const &,class std::vector<int,class std::allocator<int> > const &)" (?writeLibTiff@TiffEncoder@cv@@IAE_NABVMat@2@ABV?$vector@HV?$allocator@H@std@@@std@@@Z)
1>opencv_highgui231d.lib(grfmt_tiff.obj) : error LNK2019: unresolved external symbol _TIFFSetField referenced in function "protected: bool __thiscall cv::TiffEncoder::writeLibTiff(class cv::Mat const &,class std::vector<int,class std::allocator<int> > const &)" (?writeLibTiff@TiffEncoder@cv@@IAE_NABVMat@2@ABV?$vector@HV?$allocator@H@std@@@std@@@Z)
1>opencv_highgui231d.lib(grfmt_jpeg.obj) : error LNK2019: unresolved external symbol _jpeg_resync_to_restart referenced in function "void __cdecl cv::jpeg_buffer_src(struct jpeg_decompress_struct *,struct cv::JpegSource *)" (?jpeg_buffer_src@cv@@YAXPAUjpeg_decompress_struct@@PAUJpegSource@1@@Z)
1>opencv_highgui231d.lib(grfmt_jpeg.obj) : error LNK2019: unresolved external symbol _jpeg_destroy_decompress referenced in function "public: void __thiscall cv::JpegDecoder::close(void)" (?close@JpegDecoder@cv@@QAEXXZ)
1>opencv_highgui231d.lib(grfmt_jpeg.obj) : error LNK2019: unresolved external symbol _jpeg_read_header referenced in function "public: virtual bool __thiscall cv::JpegDecoder::readHeader(void)" (?readHeader@JpegDecoder@cv@@UAE_NXZ)
1>opencv_highgui231d.lib(grfmt_jpeg.obj) : error LNK2019: unresolved external symbol _jpeg_stdio_src referenced in function "public: virtual bool __thiscall cv::JpegDecoder::readHeader(void)" (?readHeader@JpegDecoder@cv@@UAE_NXZ)
1>opencv_highgui231d.lib(grfmt_jpeg.obj) : error LNK2019: unresolved external symbol _jpeg_CreateDecompress referenced in function "public: virtual bool __thiscall cv::JpegDecoder::readHeader(void)" (?readHeader@JpegDecoder@cv@@UAE_NXZ)
1>opencv_highgui231d.lib(grfmt_jpeg.obj) : error LNK2019: unresolved external symbol _jpeg_std_error referenced in function "public: virtual bool __thiscall cv::JpegDecoder::readHeader(void)" (?readHeader@JpegDecoder@cv@@UAE_NXZ)
1>opencv_highgui231d.lib(grfmt_jpeg.obj) : error LNK2019: unresolved external symbol _jpeg_finish_decompress referenced in function "public: virtual bool __thiscall cv::JpegDecoder::readData(class cv::Mat &)" (?readData@JpegDecoder@cv@@UAE_NAAVMat@2@@Z)
1>opencv_highgui231d.lib(grfmt_jpeg.obj) : error LNK2019: unresolved external symbol _jpeg_read_scanlines referenced in function "public: virtual bool __thiscall cv::JpegDecoder::readData(class cv::Mat &)" (?readData@JpegDecoder@cv@@UAE_NAAVMat@2@@Z)
1>opencv_highgui231d.lib(grfmt_jpeg.obj) : error LNK2019: unresolved external symbol _jpeg_start_decompress referenced in function "public: virtual bool __thiscall cv::JpegDecoder::readData(class cv::Mat &)" (?readData@JpegDecoder@cv@@UAE_NAAVMat@2@@Z)
1>opencv_highgui231d.lib(grfmt_jpeg.obj) : error LNK2019: unresolved external symbol _jpeg_alloc_huff_table referenced in function "int __cdecl cv::my_jpeg_load_dht(struct jpeg_decompress_struct *,unsigned char *,struct JHUFF_TBL * * const,struct JHUFF_TBL * * const)" (?my_jpeg_load_dht@cv@@YAHPAUjpeg_decompress_struct@@PAEQAPAUJHUFF_TBL@@2@Z)
1>opencv_highgui231d.lib(grfmt_jpeg.obj) : error LNK2019: unresolved external symbol _jpeg_destroy_compress referenced in function "public: virtual bool __thiscall cv::JpegEncoder::write(class cv::Mat const &,class std::vector<int,class std::allocator<int> > const &)" (?write@JpegEncoder@cv@@UAE_NABVMat@2@ABV?$vector@HV?$allocator@H@std@@@std@@@Z)
1>opencv_highgui231d.lib(grfmt_jpeg.obj) : error LNK2019: unresolved external symbol _jpeg_finish_compress referenced in function "public: virtual bool __thiscall cv::JpegEncoder::write(class cv::Mat const &,class std::vector<int,class std::allocator<int> > const &)" (?write@JpegEncoder@cv@@UAE_NABVMat@2@ABV?$vector@HV?$allocator@H@std@@@std@@@Z)
1>opencv_highgui231d.lib(grfmt_jpeg.obj) : error LNK2019: unresolved external symbol _jpeg_write_scanlines referenced in function "public: virtual bool __thiscall cv::JpegEncoder::write(class cv::Mat const &,class std::vector<int,class std::allocator<int> > const &)" (?write@JpegEncoder@cv@@UAE_NABVMat@2@ABV?$vector@HV?$allocator@H@std@@@std@@@Z)
1>opencv_highgui231d.lib(grfmt_jpeg.obj) : error LNK2019: unresolved external symbol _jpeg_start_compress referenced in function "public: virtual bool __thiscall cv::JpegEncoder::write(class cv::Mat const &,class std::vector<int,class std::allocator<int> > const &)" (?write@JpegEncoder@cv@@UAE_NABVMat@2@ABV?$vector@HV?$allocator@H@std@@@std@@@Z)
1>opencv_highgui231d.lib(grfmt_jpeg.obj) : error LNK2019: unresolved external symbol _jpeg_set_quality referenced in function "public: virtual bool __thiscall cv::JpegEncoder::write(class cv::Mat const &,class std::vector<int,class std::allocator<int> > const &)" (?write@JpegEncoder@cv@@UAE_NABVMat@2@ABV?$vector@HV?$allocator@H@std@@@std@@@Z)
1>opencv_highgui231d.lib(grfmt_jpeg.obj) : error LNK2019: unresolved external symbol _jpeg_set_defaults referenced in function "public: virtual bool __thiscall cv::JpegEncoder::write(class cv::Mat const &,class std::vector<int,class std::allocator<int> > const &)" (?write@JpegEncoder@cv@@UAE_NABVMat@2@ABV?$vector@HV?$allocator@H@std@@@std@@@Z)
1>opencv_highgui231d.lib(grfmt_jpeg.obj) : error LNK2019: unresolved external symbol _jpeg_stdio_dest referenced in function "public: virtual bool __thiscall cv::JpegEncoder::write(class cv::Mat const &,class std::vector<int,class std::allocator<int> > const &)" (?write@JpegEncoder@cv@@UAE_NABVMat@2@ABV?$vector@HV?$allocator@H@std@@@std@@@Z)
1>opencv_highgui231d.lib(grfmt_jpeg.obj) : error LNK2019: unresolved external symbol _jpeg_CreateCompress referenced in function "public: virtual bool __thiscall cv::JpegEncoder::write(class cv::Mat const &,class std::vector<int,class std::allocator<int> > const &)" (?write@JpegEncoder@cv@@UAE_NABVMat@2@ABV?$vector@HV?$allocator@H@std@@@std@@@Z)
1>D:\work\SimCapture\OpenCVTest\Debug\OpenCVTest.exe : fatal error LNK1120: 108 unresolved externals
8个回答

18

我有一个带有大部分功能的OpenCV静态版本。VC10 OpenCV2.4.9(OCL woo)为了解决一个非常类似的问题,我刚刚链接了以下所有内容:

libpng.lib
libtiff.lib
zlib.lib
IlmImf.lib
libjasper.lib
libjpeg.lib

他们在C:\Lib\opencv249\opencv\bld32\3rdparty\lib\Release里面。

-不确定是哪个做的,但没关系。谢谢Loozie!

PK


谢谢,这解决了链接器问题。我在我的发行版(2.4.8)中找到了库,也在静态库文件夹(build/x86/v12/staticlib)中找到了它们。 - bzs
1
$(SolutionDir)opencv-build\3rdparty\lib\Debug - FelikZ

11

在函数“int__cdecl icvCreateTrackbar(char const *, char const *, int *, int, void(__cdecl*)(int), void (__cdecl*)(int, void *), void *)”中引用了符号 _imp_CreateToolbarEx@52 (?icvCreateTrackbar@@YAHPBD0PAHHP6AXH@ZP6AXHPAX@Z3@Z),请将comctl32.lib添加到链接器输入中。

但即使添加了所有这些内容,我仍然有很多链接错误,不知道为什么...

例如:

higui.lib(window_w32.obj),_imp_getDCOrfEx@8

higui.lib(window_w32.obj),_imp_getClipBox@8

问题已解决。

只需添加Gdi32.lib,我的项目就能正常运行。

总之:

1.使用cmake构建自己的静态库。

2.还应添加第三方库。

3.还应添加像comctl32.lib、gdi32.lib这样的Windows库。

4.仔细检查第三方库是否以/MTd模式编译。我遇到过LIBCMT.lib和MSVCRT.lib的问题。

祝你好运。


8

综合其他答案的内容,我需要在链接器 >> 输入 >> 附加依赖项中包含完整的列表才能使它正常工作:

opencv_core248d.lib
opencv_imgproc248d.lib
opencv_highgui248d.lib
opencv_ml248d.lib
opencv_video248d.lib
opencv_features2d248d.lib
opencv_calib3d248d.lib
opencv_objdetect248d.lib
opencv_contrib248d.lib
opencv_legacy248d.lib
opencv_flann248d.lib
libpngd.lib
libtiffd.lib
zlibd.lib
IlmImfd.lib
libjasperd.lib
libjpegd.lib
comctl32.lib
gdi32.lib
vfw32.lib

在确保项目的运行库设置为/MTd选项后,执行此操作。

这适用于Visual Studio 2013。


这标志着4小时的奋斗结束了,谢谢您先生! - MichaelB

5

显然,_avi* 的文件可以通过链接(“附加依赖项”)vfw32.lib 来找到。


3

对于前6个错误(_gzputs等),您需要将zlib.lib(在Debug配置中为zlibd.lib)添加到链接器输入中。


2
我认为您必须使用选项“在静态库中使用MFC”才能使其与静态库一起工作。

3
你为什么要谈论MFC? - Didac Perez Parera

2

OpenCV 2.3.1 Windows包中缺少几个静态库。这些库通常作为OpenCV库的一部分构建,您无需单独安装它们。因此,您可以自己从源代码构建OpenCV或使用包中的动态库。


那么我的唯一选择是重新构建源代码或使用动态库?我无法在不查找依赖项的情况下使用预构建的静态库吗? - Matt Kline

1
我使用最新的Vs 2015 x64构建的opencv遇到了类似的问题,但是在我添加了这些第三方库(位于3rd party/library/Debug或Release)之后,问题得到了解决。
IlmImfd.lib
libjasperd.lib
libjpegd.lib
libpngd.lib
libtiffd.lib
libwebpd.lib
zlibd.lib

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接