C++ OpenCV 未解析的外部符号 - 需要其他库吗?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/8098272/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-28 17:59:53  来源:igfitidea点击:

OpenCV Unresolved External Symbols - Other Libraries Needed?

c++visual-studio-2010opencvlinker

提问by Matt Kline

I'm trying to use OpenCV2.3.1 for a video capture and processing app. I downloaded the precompiled libraries from hereand went to compile a test application using the static libraries found in the build\x86\vc10\staticlibof the download folder. Upon trying to compile, Visual Studio greets me with the linker errors shown below. Having worked with libpng, gzip, and a few others in the past, I recognize the functions from those libraries in the linker errors.

我正在尝试将OpenCV2.3.1 用于视频捕获和处理应用程序。我从这里下载了预编译库,然后使用build\x86\vc10\staticlib下载文件夹中的静态库编译了一个测试应用程序。在尝试编译时,Visual Studio 会向我显示如下所示的链接器错误。过去使用过 libpng、gzip 和其他一些库,我在链接器错误中识别出这些库中的函数。

Does using the precompiled libraries of OpenCV also require me to link in libpng, libjpeg, gzip, and numerous others, or am I missing something?

使用 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

采纳答案by Andrey Kamaev

There are several missing static libs in OpenCV 2.3.1 Windows package. These libraries are usually built as part of OpenCV library and you don't need to install them separately. So you can build OpenCV from sources yourself or use dynamic libraries from the package.

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

回答by Patrick

I have a static build of OpenCV with most of the bells and whistles. VC10 OpenCV2.4.9(OCL woo) To fix a very similar problem I just linked to all of the following:

我有一个静态构建的 OpenCV,其中包含大部分花里胡哨的功能。VC10 OpenCV2.4.9(OCL woo) 为了解决一个非常相似的问题,我只是链接到以下所有内容:

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

They were inside C:\Lib\opencv249\opencv\bld32\3rdparty\lib\Release

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

-Not sure which one did it but what the heck. Thanks Loozie!

- 不知道是哪一个做的,但到底是什么。谢谢露西!

PK

PK

回答by flankechen

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)

符号 _ imp_CreateToolbarEx@52 在函数"int __cdecl icvCreateTrackbar(char const *,char const *,int *,int,void (__cdecl*)(int),void (__cdecl*)(int,void *),void * 中引用)” (?icvCreateTrackbar@@YAHPBD0PAHHP6AXH@ZP6AXHPAX@Z3@Z)

add comctl32.lib to your linker input.

将 comctl32.lib 添加到您的链接器输入。

but after adding all this I still have lots of link errors don't know why...

但是在添加了所有这些之后,我仍然有很多链接错误,不知道为什么......

like

喜欢

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

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

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

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

problem solved.

问题解决了。

just add Gdi32.lib and my project goes fine.

只需添加 Gdi32.lib,我的项目就可以了。

to conclude:

得出结论:

1.build your own static lib with cmake.

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

2.3rd party libs should be added too.

2.3rd 方库也应该添加。

3.windows libs like comctl32.lib, gdi32.lib should be added too.

3.windows 库如 comctl32.lib, gdi32.lib 也应该添加。

4.careful check whether the libs(3rd) is complied /MTd mood. I have see LIBCMT.lib and MSVCRT.lib problems.

4.仔细检查libs(3rd)是否符合/MTd心情。我看到了 LIBCMT.lib 和 MSVCRT.lib 问题。

good luck.

祝你好运。

回答by Jason Kleban

Piecing together several of the other answers that I needed to get this to work, I needed to include this complete list in Linker >> Input >> Additional Dependencies:

将我需要使其工作所需的其他几个答案拼凑在一起,我需要在链接器>>输入>>附加依赖项中包含此完整列表:

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

after ensuring that the project's Runtime Library is set to the /MTd option.

在确保项目的运行时库设置为 /MTd 选项后。

This is for Visual Studio 2013

这是用于 Visual Studio 2013

回答by rogerdpack

the _avi* ones apparently can be found by linking ("additional dependencies") against vfw32.lib

_avi* 显然可以通过链接(“附加依赖项”)与 vfw32.lib 找到

回答by Didac Perez Parera

For the first 6 errors (_gzputs, etc...), you should to add zlib.lib (or zlibd.lib in Debug configuration) to your linker input.

对于前 6 个错误(_gzputs 等),您应该将 zlib.lib(或调试配置中的 zlibd.lib)添加到您的链接器输入。

回答by codeprof

I think you must use the option "Use MFC in a Static Library" to make it work with static libraries.

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

回答by bruce

I have a similiar problem with latest opencv built with Vs 2015 x64,

我对用 Vs 2015 x64 构建的最新 opencv 有类似的问题,

but after I added these third party libraries( at 3rd party/library/Debug or Release) , the problem was solved.

但是在我添加了这些第三方库(在 3rd party/library/Debug 或 Release)之后,问题就解决了。

IlmImfd.lib
libjasperd.lib
libjpegd.lib
libpngd.lib
libtiffd.lib
libwebpd.lib
zlibd.lib