我在 Windows8.1 x86 上使用 OpenCV 2.4.6 和 Visual Studio 2008。当我调试我的程序时,它会告诉我 9 个错误:
1>FYD_control.obj : error LNK2019: unresolved external symbol "int __stdcall cv::waitKey(int)" (?waitKey@cv@@YGHH@Z) referenced in function _main
1>FYD_control.obj : error LNK2019: unresolved external symbol "void __stdcall cv::imshow(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class cv::_InputArray const &)" (?imshow@cv@@YGXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABV_InputArray@1@@Z) referenced in function _main
1>FYD_control.obj : error LNK2019: unresolved external symbol "double __stdcall cv::threshold(class cv::_InputArray const &,class cv::_OutputArray const &,double,double,int)" (?threshold@cv@@YGNABV_InputArray@1@ABV_OutputArray@1@NNH@Z) referenced in function _main
1>FYD_control.obj : error LNK2019: unresolved external symbol "void __stdcall cv::cvtColor(class cv::_InputArray const &,class cv::_OutputArray const &,int,int)" (?cvtColor@cv@@YGXABV_InputArray@1@ABV_OutputArray@1@HH@Z) referenced in function _main
1>FYD_control.obj : error LNK2019: unresolved external symbol "void __stdcall cv::medianBlur(class cv::_InputArray const &,class cv::_OutputArray const &,int)" (?medianBlur@cv@@YGXABV_InputArray@1@ABV_OutputArray@1@H@Z) referenced in function _main
1>FYD_control.obj : error LNK2019: unresolved external symbol "void __stdcall cv::fastFree(void *)" (?fastFree@cv@@YGXPAX@Z) referenced in function "public: __thiscall cv::Mat::~Mat(void)" (??1Mat@cv@@QAE@XZ)
1>FYD_control.obj : error LNK2019: unresolved external symbol "int __stdcall cv::_interlockedExchangeAdd(int *,int)" (?_interlockedExchangeAdd@cv@@YGHPAHH@Z) referenced in function "public: void __thiscall cv::Mat::release(void)" (?release@Mat@cv@@QAEXXZ)
1>FYD_control.obj : error LNK2019: unresolved external symbol "void __stdcall cv::error(class cv::Exception const &)" (?error@cv@@YGXABVException@1@@Z) referenced in function "public: int & __thiscall cv::Mat::at<int>(int,int)" (??$at@H@Mat@cv@@QAEAAHHH@Z)
1>C:\Users\___________________________\Debug\FYD2_Control.exe : fatal error LNK1120: 8 unresolved externals
1>Build log was saved at "file://c:\Users\_________________\Debug\BuildLog.htm"
1>FYD2_Control - 9 error(s), 0 warning(s)
我已经分析了一切,我注意到在这个错误中我有
(?waitKey@cv@@YGHH@Z)
(?imshow@cv@@YGXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABV_InputArray@1@@Z)
(?threshold@cv@@YGNABV_InputArray@1@ABV_OutputArray@1@NNH@Z)
(?cvtColor@cv@@YGXABV_InputArray@1@ABV_OutputArray@1@HH@Z)
(?medianBlur@cv@@YGXABV_InputArray@1@ABV_OutputArray@1@H@Z)
(?fastFree@cv@@YGXPAX@Z)
(?_interlockedExchangeAdd@cv@@YGHPAHH@Z)
(?error@cv@@YGXABVException@1@@Z)
如果我分析 .lib 有相同的,但用 A 而不是第一个 G
(?waitKey@cv@@YAHH@Z)
(?imshow@cv@@YAXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABV_InputArray@1@@Z)
(?threshold@cv@@YANABV_InputArray@1@ABV_OutputArray@1@NNH@Z)
(?cvtColor@cv@@YAXABV_InputArray@1@ABV_OutputArray@1@HH@Z)
(?medianBlur@cv@@YAXABV_InputArray@1@ABV_OutputArray@1@H@Z)
(?fastFree@cv@@YAXPAX@Z)
(?_interlockedExchangeAdd@cv@@YAHPAHH@Z)
(?error@cv@@YAXABVException@1@@Z)
在 .lib 中用 G 替换 A 我解决了这个问题,但后来它给了我另一个错误
The procedure entry point ?fastFree@cv@@YGXPAX@Z could not be
located in the dynamic link library
我该如何解决这个问题?
对不起我的英语,感谢任何人都会回答。