matlab、VS2017配置opencv

记录一下配置过程:
VS2017配置opencv4.0.1:
https://blog.csdn.net/weixin_41991128/article/details/83656543
MATLAB2017a配置opencv:
https://blog.csdn.net/zjsmdchen/article/details/78317366
mex混编OpenCV(mex的使用):
https://blog.csdn.net/kernlen/article/details/52513205
MFC类调试过程:
E1696无法打开源文件‘new.h’:https://blog.csdn.net/tht273497754/article/details/52768880
https://blog.csdn.net/xiexingshishu/article/details/77796763
https://blog.csdn.net/u011054333/article/details/70306622
https://blog.csdn.net/xiaoxiang22/article/details/8800996
无法打开文件“opencv_world331.lib“的错误:删除【附加依赖项】中“继承的值”:
https://bbs.csdn.net/topics/390733725
win10+VS2017 如何装120工具集? VS2013如何装在d盘?
https://blog.csdn.net/qq_41895190/article/details/81807005
VS2013的vc版本为vc12,而OpenCV3.4.1所支持的vc版本为vc14、vc15,所以两者不能直接配置使用!天无绝人之路,OpenCV3.4.0所支持的vc版本为vc11、vc12,所以建议直接搭载OpenCV3.4.0+Visual Studio2013(现在官网上好像不支持vc12了,只支持vc14和15),但是可以重新cmake得到;
https://blog.csdn.net/liaodaibi/article/details/84996460
错误 1 error MSB8031: Building an MFC project for a non-Unicode character set is deprecated. You must change the project property to Unicode or download an additional library. See http://go.microsoft.com/fwlink/p/?LinkId=286820 for more information. C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppBuild.targets 369 5 sem_seg
VS2013 编译错误 error: MSB8031:
https://www.cnblogs.com/landv/p/3590511.html
错误C4996: ‘MBCS_Support_Deprecated_In_MFC’: MBCS support in MFC is deprecated and may be removed in a future version of MFC.:
http://blog.chinaunix.net/uid-24015214-id-5053976.html
出现这样的警告,原因是因为:
由于历史原因,MFC同时支持 Unicode 和 MBCS(multi-byte character set),但 Unicode 日渐变得流行,而 MBCS 逐渐用得越来越少,所以,新版本的 MFC 已经把 MBCS 作为过时的方法,所以用新版本的 Visual Studio 编译 MBCS 程序的时候会出现这样的警告信息,建议大家在新的程序中废弃 MBCS 而采用 Unicode。
https://blog.csdn.net/yapingxin/article/details/43909131
D:\Program Files (x86)\VS2017\VC\Tools\MSVC\14.16.27023\include
一直出现d:\windows kits\10\include\10.0.17763.0\ucrt\corecrt.h(10): fatal error C1083: 无法打开包括文件: “vcruntime.h”: No such file or directory的错误,应该是配置问题(未解决)猜测是因为win32程序和x64程序的区别
测试opencv的2段代码:
#include
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
int main()
{
// 读入一张图片(demo)
Mat img = imread(“E:\images\01.jpg”);
// 创建一个名为 "demo"窗口
cvNamedWindow(“demo”);
// 在窗口中显示demo
imshow(“demo”, img);
// 等待6000 ms后窗口自动关闭
waitKey(6000);
}
#include<opencv2\opencv.hpp>
using namespace cv;
int main()
{
Mat picture = imread(“E:\images\01.jpg”);
namedWindow(“ͼƬ”, 0);
imshow(“ͼƬ”, picture);
waitKey(0);
}
出现fatal error C1083: 无法打开包括文件: “vcruntime.h”这样的错误,初步解决方案是配置管理器中新建平台x64,然后Debug|x64配置文件中所有的x86改为64。这样治标不治本,或许在64位电脑上不能运行32的程序?
另外在配置中,在Debug|x64下添加新的配置文件或者现有文件时,注意环境变量中opencv的路径、配置文件中库文件中都应是x64(为什么改为x86就不行了。。我也想知道)参考这篇:https://blog.csdn.net/shenziheng1/article/details/54588457
。。。。。。。。。。。。。。。。。。
又遇到了error LNK2019: 无法解析的外部符号,一般是源代码里用了第三方库,但工程没有添加相应的库目录。
opencv249中lib需要添加完全:
opencv_calib3d249.lib
opencv_calib3d249d.lib
opencv_contrib249.lib
opencv_contrib249d.lib
opencv_core249.lib
opencv_core249d.lib
opencv_features2d249.lib
opencv_features2d249d.lib
opencv_flann249.lib
opencv_flann249d.lib
opencv_gpu249.lib
opencv_gpu249d.lib
opencv_highgui249.lib
opencv_highgui249d.lib
opencv_imgproc249.lib
opencv_imgproc249d.lib
opencv_legacy249.lib
opencv_legacy249d.lib
opencv_ml249.lib
opencv_ml249d.lib
opencv_nonfree249.lib
opencv_nonfree249d.lib
opencv_objdetect249.lib
opencv_objdetect249d.lib
opencv_ocl249.lib
opencv_ocl249d.lib
opencv_photo249.lib
opencv_photo249d.lib
opencv_stitching249.lib
opencv_stitching249d.lib
opencv_superres249.lib
opencv_superres249d.lib
opencv_ts249.lib
opencv_ts249d.lib
opencv_video249.lib
opencv_video249d.lib
opencv_videostab249.lib
opencv_videostab249d.lib
然而加上了这库后还是不行,怀疑是这个问题:带你玩转Visual Studio——调用约定__cdecl、__stdcall和__fastcallhttps://blog.csdn.net/luoweifu/article/details/52425733sem_segDlg.obj

error LNK2019: 无法解析的外部符号 “int cdecl SetWindowSkin(struct HWND *,char const *)” (?SetWindowSkin@@YAHPEAUHWND__@@PEBD@Z),该符号在函数 "protected: void cdecl Csem_segDlg::OnPaint(void)" (?OnPaint@Csem_segDlg@@IEAAXXZ) 中被引用
1>Dialog2.obj : error LNK2001: 无法解析的外部符号 “int cdecl SetWindowSkin(struct HWND *,char const *)” (?SetWindowSkin@@YAHPEAUHWND
@@PEBD@Z)
1>Dialog3.obj : error LNK2001: 无法解析的外部符号 “int cdecl SetWindowSkin(struct HWND *,char const *)” (?SetWindowSkin@@YAHPEAUHWND__@@PEBD@Z)
1>Dialog4.obj : error LNK2001: 无法解析的外部符号 “int cdecl SetWindowSkin(struct HWND *,char const *)” (?SetWindowSkin@@YAHPEAUHWND__@@PEBD@Z)
1>Dialog5.obj : error LNK2001: 无法解析的外部符号 “int cdecl SetWindowSkin(struct HWND *,char const *)” (?SetWindowSkin@@YAHPEAUHWND__@@PEBD@Z)
1>sem_seg.obj : error LNK2019: 无法解析的外部符号 “int cdecl InitSkinMagicLib(struct HINSTANCE *,char const *,char const *,char const *)” (?InitSkinMagicLib@@YAHPEAUHINSTANCE__@@PEBD11@Z),该符号在函数 “public: virtual int __cdecl Csem_segApp::InitInstance(void)” (?InitInstance@Csem_segApp@@UEAAHXZ) 中被引用
1>sem_seg.obj : error LNK2019: 无法解析的外部符号 “int __cdecl LoadSkinFile(char const *)” (?LoadSkinFile@@YAHPEBD@Z),该符号在函数 “public: virtual int __cdecl Csem_segApp::InitInstance(void)” (?InitInstance@Csem_segApp@@UEAAHXZ) 中被引用
1>D:\VS2013project\sem_seg\x64\Debug\sem_seg.exe : fatal error LNK1120: 3 个无法解析的外部命令。

这几个出问题函数都在SkinMagic.h文件里,但是都是声明,没有定义,不知道定义在哪,参考博客:MFC使用SkinMagic使用详解https://blog.csdn.net/nonecode/article/details/7951975

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值