近期VS2015使用问题总结

问题一

MSVCRTD.lib(exe_winmain.obj) : error LNK2019: 无法解析的外部符号 WinMain,该符号在函数 "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ) 中被引用

*****.exe : fatal error LNK1120: 1 个无法解析的外部命令

解决办法:

项目->属性->配置属性->连接器->系统中的【子系统】设置为Windows(/SUBSYSTEM:CONSOLE)

问题二

ImgProc.obj : error LNK2019: 无法解析的外部符号 "class cv::debug_build_guard::_InputOutputArray const & __cdecl cv::noArray(void)" (?noArray@cv@@YAAEBV_InputOutputArray@debug_build_guard@1@XZ),该符号在函数 "private: double __cdecl ImgProc::TemplateMatchingOnGray(int)" (?TemplateMatchingOnGray@ImgProc@@AEAANH@Z) 中被引用

ImgProc.obj : error LNK2019: 无法解析的外部符号 "public: void __cdecl cv::Mat::copyTo(class cv::debug_build_guard::_OutputArray const &)const " (?copyTo@Mat@cv@@QEBAXAEBV_OutputArray@debug_build_guard@2@@Z),该符号在函数 "public: __cdecl cv::Mat::Mat<double,2,3>(class cv::Matx<double,2,3> const &,bool)" (??$?0N$01$02@Mat@cv@@QEAA@AEBV?$Matx@N$01$02@1@_N@Z) 中被引用

ImgProc.obj : error LNK2019: 无法解析的外部符号 "void __cdecl cv::minMaxLoc(class cv::debug_build_guard::_InputArray const &,double *,double *,class cv::Point_<int> *,class cv::Point_<int> *,class cv::debug_build_guard::_InputArray const &)" (?minMaxLoc@cv@@YAXAEBV_InputArray@debug_build_guard@1@PEAN1PEAV?$Point_@H@1@20@Z),该符号在函数 "private: double __cdecl ImgProc::TemplateMatchingOnGray(int)" (?TemplateMatchingOnGray@ImgProc@@AEAANH@Z) 中被引用

1>ImgProc.obj : error LNK2019: 无法解析的外部符号 "bool __cdecl cv::imwrite(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class cv::debug_build_guard::_InputArray const &,class std::vector<int,class std::allocator<int> > const &)" (?imwrite@cv@@YA_NAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBV_InputArray@debug_build_guard@1@AEBV?$vector@HV?$allocator@H@std@@@3@@Z),该符号在函数 "public: void __cdecl ImgProc::Binarize(struct EraseEnt * *,int)" (?Binarize@ImgProc@@QEAAXPEAPEAUEraseEnt@@H@Z) 中被引用

dllmain.obj : error LNK2001: 无法解析的外部符号 "bool __cdecl cv::imwrite(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class cv::debug_build_guard::_InputArray const &,class std::vector<int,class std::allocator<int> > const &)" (?imwrite@cv@@YA_NAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBV_InputArray@debug_build_guard@1@AEBV?$vector@HV?$allocator@H@std@@@3@@Z)

NeuralNetwork.obj : error LNK2001: 无法解析的外部符号 "bool __cdecl cv::imwrite(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class cv::debug_build_guard::_InputArray const &,class std::vector<int,class std::allocator<int> > const &)" (?imwrite@cv@@YA_NAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBV_InputArray@debug_build_guard@1@AEBV?$vector@HV?$allocator@H@std@@@3@@Z)

ImgProc.obj : error LNK2019: 无法解析的外部符号 "void __cdecl cv::medianBlur(class cv::debug_build_guard::_InputArray const &,class cv::debug_build_guard::_OutputArray const &,int)" (?medianBlur@cv@@YAXAEBV_InputArray@debug_build_guard@1@AEBV_OutputArray@31@H@Z),该符号在函数 "private: void __cdecl ImgProc::AdaptiveThreshold(class cv::Mat &,class cv::Mat &,double,int,double,int,int,int,class cv::Rect_<int>,enum adaptiveMethod)" (?AdaptiveThreshold@ImgProc@@AEAAXAEAVMat@cv@@0NHNHHHV?$Rect_@H@3@W4adaptiveMethod@@@Z) 中被引用

ImgProc.obj : error LNK2019: 无法解析的外部符号 "void __cdecl cv::GaussianBlur(class cv::debug_build_guard::_InputArray const &,class cv::debug_build_guard::_OutputArray const &,class cv::Size_<int>,double,double,int)" (?GaussianBlur@cv@@YAXAEBV_InputArray@debug_build_guard@1@AEBV_OutputArray@31@V?$Size_@H@1@NNH@Z),该符号在函数 "private: void __cdecl ImgProc::AdaptiveThreshold(class cv::Mat &,class cv::Mat &,double,int,double,int,int,int,class cv::Rect_<int>,enum adaptiveMethod)" (?AdaptiveThreshold@ImgProc@@AEAAXAEAVMat@cv@@0NHNHHHV?$Rect_@H@3@W4adaptiveMethod@@@Z) 中被引用

ImgProc.obj : error LNK2019: 无法解析的外部符号 "void __cdecl cv::blur(class cv::debug_build_guard::_InputArray const &,class cv::debug_build_guard::_OutputArray const &,class cv::Size_<int>,class cv::Point_<int>,int)" (?blur@cv@@YAXAEBV_InputArray@debug_build_guard@1@AEBV_OutputArray@31@V?$Size_@H@1@V?$Point_@H@1@H@Z),该符号在函数 "private: void __cdecl ImgProc::AdaptiveThreshold(class cv::Mat &,class cv::Mat &,double,int,double,int,int,int,class cv::Rect_<int>,enum adaptiveMethod)" (?AdaptiveThreshold@ImgProc@@AEAAXAEAVMat@cv@@0NHNHHHV?$Rect_@H@3@W4adaptiveMethod@@@Z) 中被引用

ImgProc.obj : error LNK2019: 无法解析的外部符号 "void __cdecl cv::Canny(class cv::debug_build_guard::_InputArray const &,class cv::debug_build_guard::_OutputArray const &,double,double,int,bool)" (?Canny@cv@@YAXAEBV_InputArray@debug_build_guard@1@AEBV_OutputArray@31@NNH_N@Z),该符号在函数 "public: void __cdecl ImgProc::Binarize(struct EraseEnt * *,int)" (?Binarize@ImgProc@@QEAAXPEAPEAUEraseEnt@@H@Z) 中被引用

ImgProc.obj : error LNK2019: 无法解析的外部符号 "void __cdecl cv::dilate(class cv::debug_build_guard::_InputArray const &,class cv::debug_build_guard::_OutputArray const &,class cv::debug_build_guard::_InputArray const &,class cv::Point_<int>,int,int,class cv::Scalar_<double> const &)" (?dilate@cv@@YAXAEBV_InputArray@debug_build_guard@1@AEBV_OutputArray@31@0V?$Point_@H@1@HHAEBV?$Scalar_@N@1@@Z),该符号在函数 "public: void __cdecl ImgProc::Binarize(struct EraseEnt * *,int)" (?Binarize@ImgProc@@QEAAXPEAPEAUEraseEnt@@H@Z) 中被引用

ImgProc.obj : error LNK2019: 无法解析的外部符号 "void __cdecl cv::warpAffine(class cv::debug_build_guard::_InputArray const &,class cv::debug_build_guard::_OutputArray const &,class cv::debug_build_guard::_InputArray const &,class cv::Size_<int>,int,int,class cv::Scalar_<double> const &)" (?warpAffine@cv@@YAXAEBV_InputArray@debug_build_guard@1@AEBV_OutputArray@31@0V?$Size_@H@1@HHAEBV?$Scalar_@N@1@@Z),该符号在函数 "private: void __cdecl ImgProc::RotatoImage(class cv::Mat &,double)" (?RotatoImage@ImgProc@@AEAAXAEAVMat@cv@@N@Z) 中被引用

ImgProc.obj : error LNK2019: 无法解析的外部符号 "void __cdecl cv::cvtColor(class cv::debug_build_guard::_InputArray const &,class cv::debug_build_guard::_OutputArray const &,int,int)" (?cvtColor@cv@@YAXAEBV_InputArray@debug_build_guard@1@AEBV_OutputArray@31@HH@Z),该符号在函数 "public: bool __cdecl ImgProc::LoadMat(unsigned char *,int,int,char *,struct EraseEnt * *,int)" (?LoadMat@ImgProc@@QEAA_NPEAEHHPEADPEAPEAUEraseEnt@@H@Z) 中被引用

ImgProc.obj : error LNK2019: 无法解析的外部符号 "void __cdecl cv::matchTemplate(class cv::debug_build_guard::_InputArray const &,class cv::debug_build_guard::_InputArray const &,class cv::debug_build_guard::_OutputArray const &,int,class cv::debug_build_guard::_InputArray const &)" (?matchTemplate@cv@@YAXAEBV_InputArray@debug_build_guard@1@0AEBV_OutputArray@31@H0@Z),该符号在函数 "private: double __cdecl ImgProc::TemplateMatchingOnGray(int)" (?TemplateMatchingOnGray@ImgProc@@AEAANH@Z) 中被引用

ImgProc.obj : error LNK2019: 无法解析的外部符号 "void __cdecl cv::findContours(class cv::debug_build_guard::_InputArray const &,class cv::debug_build_guard::_OutputArray const &,class cv::debug_build_guard::_OutputArray const &,int,int,class cv::Point_<int>)" (?findContours@cv@@YAXAEBV_InputArray@debug_build_guard@1@AEBV_OutputArray@31@1HHV?$Point_@H@1@@Z),该符号在函数 "private: int __cdecl ImgProc::ContourAnalysis(class cv::Mat &,class cv::Mat &)" (?ContourAnalysis@ImgProc@@AEAAHAEAVMat@cv@@0@Z) 中被引用

dllmain.obj : error LNK2001: 无法解析的外部符号 "void __cdecl cv::findContours(class cv::debug_build_guard::_InputArray const &,class cv::debug_build_guard::_OutputArray const &,class cv::debug_build_guard::_OutputArray const &,int,int,class cv::Point_<int>)" (?findContours@cv@@YAXAEBV_InputArray@debug_build_guard@1@AEBV_OutputArray@31@1HHV?$Point_@H@1@@Z)

ImgProc.obj : error LNK2019: 无法解析的外部符号 "double __cdecl cv::arcLength(class cv::debug_build_guard::_InputArray const &,bool)" (?arcLength@cv@@YANAEBV_InputArray@debug_build_guard@1@_N@Z),该符号在函数 "private: int __cdecl ImgProc::ContourAnalysis(class cv::Mat &,class cv::Mat &)" (?ContourAnalysis@ImgProc@@AEAAHAEAVMat@cv@@0@Z) 中被引用

ImgProc.obj : error LNK2019: 无法解析的外部符号 "class cv::Rect_<int> __cdecl cv::boundingRect(class cv::debug_build_guard::_InputArray const &)" (?boundingRect@cv@@YA?AV?$Rect_@H@1@AEBV_InputArray@debug_build_guard@1@@Z),该符号在函数 "private: int __cdecl ImgProc::ContourAnalysis(class cv::Mat &,class cv::Mat &)" (?ContourAnalysis@ImgProc@@AEAAHAEAVMat@cv@@0@Z) 中被引用

ImgProc.obj : error LNK2019: 无法解析的外部符号 "double __cdecl cv::contourArea(class cv::debug_build_guard::_InputArray const &,bool)" (?contourArea@cv@@YANAEBV_InputArray@debug_build_guard@1@_N@Z),该符号在函数 "private: int __cdecl ImgProc::ContourAnalysis(class cv::Mat &,class cv::Mat &)" (?ContourAnalysis@ImgProc@@AEAAHAEAVMat@cv@@0@Z) 中被引用

dllmain.obj : error LNK2001: 无法解析的外部符号 "double __cdecl cv::contourArea(class cv::debug_build_guard::_InputArray const &,bool)" (?contourArea@cv@@YANAEBV_InputArray@debug_build_guard@1@_N@Z)

ImgProc.obj : error LNK2019: 无法解析的外部符号 "void __cdecl cv::minEnclosingCircle(class cv::debug_build_guard::_InputArray const &,class cv::Point_<float> &,float &)" (?minEnclosingCircle@cv@@YAXAEBV_InputArray@debug_build_guard@1@AEAV?$Point_@M@1@AEAM@Z),该符号在函数 "private: int __cdecl ImgProc::ContourAnalysis(class cv::Mat &,class cv::Mat &)" (?ContourAnalysis@ImgProc@@AEAAHAEAVMat@cv@@0@Z) 中被引用

ImgProc.obj : error LNK2019: 无法解析的外部符号 "void __cdecl cv::line(class cv::debug_build_guard::_InputOutputArray const &,class cv::Point_<int>,class cv::Point_<int>,class cv::Scalar_<double> const &,int,int,int)" (?line@cv@@YAXAEBV_InputOutputArray@debug_build_guard@1@V?$Point_@H@1@1AEBV?$Scalar_@N@1@HHH@Z),该符号在函数 "public: void __cdecl ImgProc::Binarize(struct EraseEnt * *,int)" (?Binarize@ImgProc@@QEAAXPEAPEAUEraseEnt@@H@Z) 中被引用

ImgProc.obj : error LNK2019: 无法解析的外部符号 "void __cdecl cv::circle(class cv::debug_build_guard::_InputOutputArray const &,class cv::Point_<int>,int,class cv::Scalar_<double> const &,int,int,int)" (?circle@cv@@YAXAEBV_InputOutputArray@debug_build_guard@1@V?$Point_@H@1@HAEBV?$Scalar_@N@1@HHH@Z),该符号在函数 "public: void __cdecl ImgProc::DrawCircleSet(double (*)[2],int,unsigned char,unsigned char,unsigned char)" (?DrawCircleSet@ImgProc@@QEAAXPEAY01NHEEE@Z) 中被引用

dllmain.obj : error LNK2019: 无法解析的外部符号 "void __cdecl cv::warpPolar(class cv::debug_build_guard::_InputArray const &,class cv::debug_build_guard::_OutputArray const &,class cv::Size_<int>,class cv::Point_<float>,double,int)" (?warpPolar@cv@@YAXAEBV_InputArray@debug_build_guard@1@AEBV_OutputArray@31@V?$Size_@H@1@V?$Point_@M@1@NH@Z),该符号在函数 "void __cdecl harmonicmap2bar4binary(struct Block *,class cv::Mat &,class cv::Point_<float>,int)" (?harmonicmap2bar4binary@@YAXPEAUBlock@@AEAVMat@cv@@V?$Point_@M@3@H@Z) 中被引用

dllmain.obj : error LNK2019: 无法解析的外部符号 "double __cdecl cv::threshold(class cv::debug_build_guard::_InputArray const &,class cv::debug_build_guard::_OutputArray const &,double,double,int)" (?threshold@cv@@YANAEBV_InputArray@debug_build_guard@1@AEBV_OutputArray@31@NNH@Z),该符号在函数 "void __cdecl GetProjY4Break(int *,class cv::Mat &,int,int)" (?GetProjY4Break@@YAXPEAHAEAVMat@cv@@HH@Z) 中被引用

dllmain.obj : error LNK2019: 无法解析的外部符号 "class cv::RotatedRect __cdecl cv::minAreaRect(class cv::debug_build_guard::_InputArray const &)" (?minAreaRect@cv@@YA?AVRotatedRect@1@AEBV_InputArray@debug_build_guard@1@@Z),该符号在函数 "int __cdecl ContourAnalysis4MultiCarving(struct MeasureParam *,struct Block *,int,double,bool)" (?ContourAnalysis4MultiCarving@@YAHPEAUMeasureParam@@PEAUBlock@@HN_N@Z) 中被引用

NeuralNetwork.obj : error LNK2019: 无法解析的外部符号 "public: void __cdecl cv::dnn::dnn4_v20211004::Net::setInput(class cv::debug_build_guard::_InputArray const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,double,class cv::Scalar_<double> const &)" (?setInput@Net@dnn4_v20211004@dnn@cv@@QEAAXAEBV_InputArray@debug_build_guard@4@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@NAEBV?$Scalar_@N@4@@Z),该符号在函数 "public: void __cdecl NeuralNetwork::tf_inv_net_defect(class std::vector<double,class std::allocator<double> >,class std::vector<class cv::Mat,class std::allocator<class cv::Mat> > &)" (?tf_inv_net_defect@NeuralNetwork@@QEAAXV?$vector@NV?$allocator@N@std@@@std@@AEAV?$vector@VMat@cv@@V?$allocator@VMat@cv@@@std@@@3@@Z) 中被引用

NeuralNetwork.obj : error LNK2019: 无法解析的外部符号 "class cv::Mat __cdecl cv::dnn::dnn4_v20211004::blobFromImages(class cv::debug_build_guard::_InputArray const &,double,class cv::Size_<int>,class cv::Scalar_<double> const &,bool,bool,int)" (?blobFromImages@dnn4_v20211004@dnn@cv@@YA?AVMat@3@AEBV_InputArray@debug_build_guard@3@NV?$Size_@H@3@AEBV?$Scalar_@N@3@_N3H@Z),该符号在函数 "public: void __cdecl NeuralNetwork::tf_inv_net_defect(class std::vector<double,class std::allocator<double> >,class std::vector<class cv::Mat,class std::allocator<class cv::Mat> > &)" (?tf_inv_net_defect@NeuralNetwork@@QEAAXV?$vector@NV?$allocator@N@std@@@std@@AEAV?$vector@VMat@cv@@V?$allocator@VMat@cv@@@std@@@3@@Z) 中被引用

*********.dll : fatal error LNK1120: 24 个无法解析的外部命令

解决办法:

打开工程属性-->c/c++--->预处理器---->预处理器定义,添加宏定义:CV_IGNORE_DEBUG_BUILD_GUARD

问题三

直接调用Imgproc中的两个C++函数,在实现的过程中发现imread始终读取不了图像数据和cvLoadImage却可以,几经考证,发现的确是由于库关联的问题,在Debug模式下应该选择带'd'lib,在Release模式下就选择不带'd'lib,可以选择都加进去。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用MSYS2和VS2015编译FFmpeg,你可以按照以下步骤进行操作: 1. 首先,你需要下载并安装MSYS2。你可以从官方网站https://www.msys2.org/下载MSYS2安装程序。 2. 安装完成后,打开MSYS2的命令行界面,并运行以下命令来安装必要的工具:pacman -S make gcc diffutils 3. 为了避免和MSVC的link.exe程序冲突,你需要将C:\msys64\usr\bin\link.exe重命名为C:\msys64\usr\bin\link_orig.exe。 4. 下载YASM(The Yasm Modular Assembler),你可以从官方网站https://www.tortall.net/projects/yasm/wiki/Download下载YASM。将下载的yasm--win64.exe重命名为yasm.exe,并将其拷贝至MSYS2的安装目录(比如C:\msys64)。 5. 现在你可以下载FFmpeg的源代码。你可以从官方GitHub仓库https://github.com/FFmpeg/FFmpeg下载FFmpeg的源码。 6. 打开MSYS2的命令行界面,并切换到FFmpeg源码所在的目录。 7. 运行以下命令来配置FFmpeg的编译选项:./configure --toolchain=msvc --arch=x86_64 --enable-yasm --enable-asm --enable-shared --disable-static 8. 配置完成后,你可以运行make命令来开始编译FFmpeg。请注意,编译过程可能会比较耗时,请耐心等待。 9. 编译完成后,你可以使用编译好的库来进行你的项目开发。 总结一下,使用MSYS2和VS2015编译FFmpeg的步骤包括安装MSYS2、安装必要的工具、重命名link.exe、下载YASM、下载FFmpeg源码、配置编译选项、运行make命令进行编译。希望以上信息对你有帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [使用msys64+vs2019在编译ffmpeg](https://download.csdn.net/download/ihmhm12345/13116875)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [使用MSYS2 + VS2022编译FFmpeg](https://blog.csdn.net/powang2011/article/details/122724685)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值