Matlab 2019a 与 Visual Studio 2017 联合编译

因为要用NYU V2 ToolBox中的 深度补全 功能,所以接触到了如题的点。如下图所示,ToolBox代码有放在Matlab中运行的 .m 文件,也有经典的 .cpp 文件简单科普一下,因为 C/C++ 运行效率远超 .m ,所以可以把程序的核心代码放在 .cpp中,以节省时间。
在这里插入图片描述

实践

首先,一开始运行 demo_fill_depth_cross_bf_test.m 文件,报错如下图简单解释一下:函数 mex_cbf_windows 和函数 cbf_windows对应着函数 mex_cbf_windows.cpp 和函数 cbf_windows.cpp。当然,不是所有的 .cpp 都可以被 Matalb 直接调用,感兴趣参阅此处此处。接下来便引出了本文的主题:Matlab2019a与Visual Studio2017联合编译
在这里插入图片描述

首先本人的 Matlab 版本是 2019a可以和 Visual Studio 2015,2017 联合编译,而不支持和 Visual Studio 2019。由于我之前只有 Visual Studio 2019,所以大早上还重装了Visual Studio 2017。那么你也许会问,我的 Matlab 不是2019a,那么和哪些匹配呢?不要急,只需要在 Matlab 中运行

mex -setup -v

那么 Matalb 就会返回信息如果电脑上已经装了匹配的编译器,它会告诉你。如果没装,也不必惊慌,因为它也会告诉你你的 Matlab 匹配的 Visual Studio 或者其他的适合的版本。去下载安装即可
接下来,在 Matlab 执行

mex -setup C++

这样就设置好了与 Visual Studio 2017 联合编译 C++。
紧接着,在 Matlab执行

mex mex_cbf_windows.cpp cbf_windows.cpp

这时就会生成以 .mexw64 后缀的文件 mex_cbf_windows.mexw64当然注意,此时 Matlab 的当前文件目录一定要是 mex_cbf_windows.cpp cbf_windows.cpp 所在的目录。
最后,运行调用了 函数 mex_cbf_windows 和函数 cbf_windows的demo文件 demo_fill_depth_cross_bf_test.m 即可。

参考

https://blog.csdn.net/weixin_41423872/article/details/114578403
https://blog.csdn.net/q505025354/article/details/106289988
https://zhuanlan.zhihu.com/p/60380931

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
matlab在关联编译器的时候 会出现找不到编译器的问题 原因是matlab要找windows sdk的mt exe 本文件修改方法也是根据wiills的那篇“matlab找不到编译器的问题”(matlab无法找到vs2012)的修改方法进行的 请参考:http: download csdn net download wiills 4621079 本次修改如下说明: 1 本次为:Matlab版本为Matlab 2013b(64bit版本)无法关联visual studio 2013编译器的解决方法 2 相对于wiills的修改来说 使用读注册表的方法(不删除添加任何语句 只是修改) 而不是使用绝对路径给出地址 理论上讲如果VS2013的安装路径不是默认的 只要版本对的话把这些文件添加进相对性的目录也是可以关联的 3 使用方法 复制wiills的说明了 哈哈 : 1 把附件相关的5个文件添加到matlab bin win64下面的2个相关目录 2 在matlab 里面运行 mbuild setup 然后选 y 再选择2013的那个项目 再选y 3 这是应该成功了 4 mex setup也是一样的 如果是Matlab 2013b 32位版本的可以复制出matlab bin win64两个相关目录下(mexopts目录下的:msvc110opts stp msvc110opts bat msvc110engmatopts bat和mbuildopts目录下的:msvc110compp bat msvc110compp stp)这五个文件 VS2012的支持文件 对照本文下面给出方法自行修改即可 ">matlab在关联编译器的时候 会出现找不到编译器的问题 原因是matlab要找windows sdk的mt exe 本文件修改方法也是根据wiills的那篇“matlab找不到编译器的问题”(matlab无法找到vs2012)的修改方法进行的 请参考:http: download csdn net downlo [更多]
Visual StudioMatlab混合编程是指在Visual Studio开发环境下同时使用Matlab进行编程和调试的一种方法。通过将Matlab引擎嵌入到Visual Studio项目中,可以实现两者之间的无缝集成。 在进行Visual StudioMatlab混合编程时,需要进行一些配置和设置。首先,确保已经安装了Visual StudioMatlab,并且两者的版本兼容。然后,按照引用中提供的配置方法,在Visual Studio中添加Matlab引擎的路径和库文件等设置。 一旦配置完成,就可以在Visual Studio中编写和调试Matlab代码了。可以使用Matlab的函数和工具箱,在Visual Studio中调用Matlab函数,并实时查看结果。这样可以充分发挥Visual StudioMatlab各自的优势,提高编程和调试的效率。 在混合编程过程中,可能会遇到一些问题,比如编译错误、链接错误或运行时错误。这时可以参考引用中提供的解决方法,根据错误提示进行排查和调试。同时,也可以参考引用中列出的常见问题和解决方案,以便更好地解决遇到的问题。 总之,Visual StudioMatlab混合编程可以让开发者充分利用两种工具的优势,提高编程效率和代码质量。通过合理配置和解决可能遇到的问题,可以实现更加高效和灵活的编程体验。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [VisualStudio配置与Matlab混合编译问题总结](https://blog.csdn.net/Procyon_/article/details/129637754)[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* [VisualStudio2008和matlab2010混合编程正确配置方法-VS2008和matlab2010混合编程正确配置方法.doc](https://download.csdn.net/download/weixin_39840387/11539939)[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 ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

培之

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值