8

Soy nuevo en OpenCV y he intentado configurarlo en Visual Studios 2010 Ultimate. Seguí la documentación exactamente y vinculé los archivos como decía. Aquí están las bibliotecas adicionales que estoy usando:OpenCV no se compilará debido a elementos externos no resueltos - LNK2019

opencv_core231d.lib 
opencv_imgproc231d.lib 
opencv_highgui231d.lib 
opencv_ml231d.lib 
opencv_video231d.lib 
opencv_features2d231d.lib 
opencv_calib3d231d.lib 
opencv_objdetect231d.lib 
opencv_contrib231d.lib 
opencv_legacy231d.lib 
opencv_flann231d.lib 

Y todas sus contrapartes de lanzamiento. Sin embargo, cuando intento depurar & compilar el código de muestra que me ha dado, obtengo los siguientes errores. (He leído en alguna parte que usted tiene que compilar y publicar el proyecto con el fin de que funcione correctamente? ¿Es cierto eso también?)

1>------ Build started: Project: openCVTest, Configuration: Debug Win32 ------ 
1>Build started 5/6/2012 10:39:03 AM. 
1>InitializeBuildStatus: 
1> Touching "Debug\openCVTest.unsuccessfulbuild". 
1>ClCompile: 
1> All outputs are up-to-date. 
1>ManifestResourceCompile: 
1> All outputs are up-to-date. 
1>openCVTest.obj : error LNK2019: unresolved external symbol _cvWaitKey referenced in function _main 
1>openCVTest.obj : error LNK2019: unresolved external symbol "void __cdecl cv::imshow(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class cv::_InputArray const &)" ([email protected]@@[email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@@Z) referenced in function _main 
1>openCVTest.obj : error LNK2019: unresolved external symbol "public: __thiscall cv::_InputArray::_InputArray(class cv::Mat const &)" ([email protected]@@[email protected]@[email protected]@Z) referenced in function _main 
1>openCVTest.obj : error LNK2019: unresolved external symbol _cvMoveWindow referenced in function _main 
1>openCVTest.obj : error LNK2019: unresolved external symbol "void __cdecl cv::namedWindow(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,int)" ([email protected]@@[email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]) referenced in function _main 
1>openCVTest.obj : error LNK2019: unresolved external symbol "public: virtual double __thiscall cv::VideoCapture::get(int)" ([email protected]@[email protected]@[email protected]) referenced in function _main 
1>openCVTest.obj : error LNK2019: unresolved external symbol "public: virtual __thiscall cv::VideoCapture::~VideoCapture(void)" ([email protected]@@[email protected]) referenced in function _main 
1>openCVTest.obj : error LNK2019: unresolved external symbol "public: virtual bool __thiscall cv::VideoCapture::isOpened(void)const " ([email protected]@[email protected]@UBE_NXZ) referenced in function _main 
1>openCVTest.obj : error LNK2019: unresolved external symbol "public: __thiscall cv::VideoCapture::VideoCapture(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" ([email protected]@@[email protected][email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@@Z) referenced in function _main 
1>openCVTest.obj : error LNK2019: unresolved external symbol "void __cdecl cv::fastFree(void *)" ([email protected]@@[email protected]) referenced in function "public: __thiscall cv::Mat::~Mat(void)" ([email protected]@@[email protected]) 
1>openCVTest.obj : error LNK2019: unresolved external symbol "public: void __thiscall cv::Mat::deallocate(void)" ([email protected]@[email protected]@QAEXXZ) referenced in function "public: void __thiscall cv::Mat::release(void)" ([email protected]@[email protected]@QAEXXZ) 
1>openCVTest.obj : error LNK2019: unresolved external symbol "class cv::Scalar_<double> __cdecl cv::sum(class cv::_InputArray const &)" ([email protected]@@[email protected]@[email protected][email protected]@@Z) referenced in function "double __cdecl getPSNR(class cv::Mat const &,class cv::Mat const &)" ([email protected]@[email protected]@@[email protected]) 
1>openCVTest.obj : error LNK2019: unresolved external symbol "public: class cv::MatExpr __thiscall cv::Mat::mul(class cv::_InputArray const &,double)const " ([email protected]@[email protected]@[email protected]@[email protected]@[email protected]) referenced in function "double __cdecl getPSNR(class cv::Mat const &,class cv::Mat const &)" ([email protected]@[email protected]@@[email protected]) 
1>openCVTest.obj : error LNK2019: unresolved external symbol "public: void __thiscall cv::Mat::convertTo(class cv::_OutputArray const &,int,double,double)const " ([email protected]@[email protected]@[email protected]@[email protected]) referenced in function "double __cdecl getPSNR(class cv::Mat const &,class cv::Mat const &)" ([email protected]@[email protected]@@[email protected]) 
1>openCVTest.obj : error LNK2019: unresolved external symbol "void __cdecl cv::absdiff(class cv::_InputArray const &,class cv::_InputArray const &,class cv::_OutputArray const &)" ([email protected]@@[email protected]@[email protected]@@Z) referenced in function "double __cdecl getPSNR(class cv::Mat const &,class cv::Mat const &)" ([email protected]@[email protected]@@[email protected]) 
1>openCVTest.obj : error LNK2019: unresolved external symbol "public: __thiscall cv::_OutputArray::_OutputArray(class cv::Mat &)" ([email protected]@@[email protected]@[email protected]@Z) referenced in function "double __cdecl getPSNR(class cv::Mat const &,class cv::Mat const &)" ([email protected]@[email protected]@@[email protected]) 
1>openCVTest.obj : error LNK2019: unresolved external symbol "class cv::Scalar_<double> __cdecl cv::mean(class cv::_InputArray const &,class cv::_InputArray const &)" ([email protected]@@[email protected]@[email protected][email protected]@[email protected]) referenced in function "class cv::Scalar_<double> __cdecl getMSSIM(class cv::Mat const &,class cv::Mat const &)" ([email protected]@[email protected]@[email protected]@[email protected]@[email protected]) 
1>openCVTest.obj : error LNK2019: unresolved external symbol "class cv::_OutputArray const & __cdecl cv::noArray(void)" ([email protected]@@[email protected]@XZ) referenced in function "class cv::Scalar_<double> __cdecl getMSSIM(class cv::Mat const &,class cv::Mat const &)" ([email protected]@[email protected]@[email protected]@[email protected]@[email protected]) 
1>openCVTest.obj : error LNK2019: unresolved external symbol "void __cdecl cv::divide(class cv::_InputArray const &,class cv::_InputArray const &,class cv::_OutputArray const &,double,int)" ([email protected]@@[email protected]@[email protected]@[email protected]) referenced in function "class cv::Scalar_<double> __cdecl getMSSIM(class cv::Mat const &,class cv::Mat const &)" ([email protected]@[email protected]@[email protected]@[email protected]@[email protected]) 
1>openCVTest.obj : error LNK2019: unresolved external symbol "class cv::MatExpr __cdecl cv::operator+(class cv::Mat const &,class cv::Mat const &)" ([email protected]@[email protected]@[email protected]@[email protected]) referenced in function "class cv::Scalar_<double> __cdecl getMSSIM(class cv::Mat const &,class cv::Mat const &)" ([email protected]@[email protected]@[email protected]@[email protected]@[email protected]) 
1>openCVTest.obj : error LNK2019: unresolved external symbol "class cv::MatExpr __cdecl cv::operator+(class cv::MatExpr const &,class cv::Scalar_<double> const &)" ([email protected]@[email protected]@[email protected][email protected]@[email protected]@Z) referenced in function "class cv::Scalar_<double> __cdecl getMSSIM(class cv::Mat const &,class cv::Mat const &)" ([email protected]@[email protected]@[email protected]@[email protected]@[email protected]) 
1>openCVTest.obj : error LNK2019: unresolved external symbol "class cv::MatExpr __cdecl cv::operator*(double,class cv::Mat const &)" ([email protected]@[email protected]@[email protected]@@Z) referenced in function "class cv::Scalar_<double> __cdecl getMSSIM(class cv::Mat const &,class cv::Mat const &)" ([email protected]@[email protected]@[email protected]@[email protected]@[email protected]) 
1>openCVTest.obj : error LNK2019: unresolved external symbol "void __cdecl cv::GaussianBlur(class cv::_InputArray const &,class cv::_OutputArray const &,class cv::Size_<int>,double,double,int)" ([email protected]@@[email protected]@[email protected]@[email protected]@[email protected]@Z) referenced in function "class cv::Scalar_<double> __cdecl getMSSIM(class cv::Mat const &,class cv::Mat const &)" ([email protected]@[email protected]@[email protected]@[email protected]@[email protected]) 
1>openCVTest.obj : error LNK2019: unresolved external symbol "public: void __thiscall cv::Mat::copySize(class cv::Mat const &)" ([email protected]@[email protected]@[email protected]@Z) referenced in function "public: __thiscall cv::Mat::Mat(class cv::Mat const &)" ([email protected]@@[email protected]@@Z) 
1>openCVTest.obj : error LNK2019: unresolved external symbol "void __cdecl cv::subtract(class cv::_InputArray const &,class cv::_InputArray const &,class cv::_OutputArray const &,class cv::_InputArray const &,int)" ([email protected]@@[email protected]@[email protected]@[email protected]) referenced in function "class cv::Mat & __cdecl cv::operator-=(class cv::Mat const &,class cv::Mat const &)" ([email protected]@[email protected]@[email protected]@Z) 
1>C:\Users\Logan\documents\visual studio 2010\Projects\openCVTest\Debug\openCVTest.exe : fatal error LNK1120: 25 unresolved externals 
1> 
1>Build FAILED. 
1> 
1>Time Elapsed 00:00:00.40 
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== 

Fui a través de todos mis directorios y se aseguró de que las bibliotecas, hicieron en de hecho, existen en mis archivos OpenCV, y mi descarga no se corrompió ni nada. ¡Cualquier ayuda sería apreciada!

-Logantf17

+0

Necesito saber qué tan bien sabes lo que estás haciendo. ¿Sabes cómo vincular contra las bibliotecas? En la primera mirada, parece que eso es exactamente lo que falta. – guinny

+0

1. ¿ha compilado OpenCV usted mismo? 2. ¿Están los archivos lib debajo de (Propiedades -> Enlazador -> Entrada -> Dependencias Adicionales) en su proyecto visual c? – guinny

+0

Bueno, estoy aprendiendo como voy. No he necesitado vincularme con bibliotecas antes (esta es la primera vez que lo encuentro necesario). Busqué la forma de vincular las bibliotecas en VS más temprano, para asegurarme de estar haciendo lo correcto. Pero no sé si es necesario algo más ... como archivos de encabezado u otras bibliotecas. – loganfarr

Respuesta

7

Me encontré con el mismo problema y descubrí que tenía como objetivo una plataforma de 32 bits. La respuesta fue cambiar mi proyecto para apuntar a x64. Las instrucciones se encuentran en: http://msdn.microsoft.com/en-us/library/vstudio/ms185328.aspx.

También encontré que la referencia mencionada anteriormente por chaiy fue muy útil. Aquí está de nuevo: http://docs.opencv.org/trunk/doc/tutorials/introduction/windows_visual_studio_Opencv/windows_visual_studio_Opencv.html#windows-visual-studio-how-to

+0

¡¡¡Me salvaste el día !!!!!! ! – user2924714

Cuestiones relacionadas