matlab: mex命令提示找不到编译器或SDK

您所在的位置:网站首页 matlab打开图标在哪个文件夹里找 matlab: mex命令提示找不到编译器或SDK

matlab: mex命令提示找不到编译器或SDK

2023-12-26 13:15| 来源: 网络整理| 查看: 265

       本人在学习caffe时候 在配置一个模型的时候需要调用matlab接口来启用vs编译器。但是mex命令一直提示找不到编译器或SDK,在发网上搜索了很多资料,解决办法各种各样, 但都没有解决我的问题,经过一番仔细研究,终于解决,先把这个问题一些相关注意问题做个整理,为大家提供个参考。

        本人的运行环境:

        系统:win10(64bit)

        matlab:matlab2016a

         vs: vs2013

         SDK: v8.1

     

        要解决相关的mex命令找不到编译器,首先就需要了解相关命令调用的配置文件的路径位于:/bin/win64/mexopts。里面有很多和和编译器以及SDK相关的环境配置文件。下图是我的mexopts文件夹下的配置文件:

 

  可以看到里面都是一些xml文件(注:从2016往后所有配置文件都用xml文件来保存,如果你的是2016以前的版本,该文件夹下是一些stp和bat文件。但内容都是一致的 保存的是SDK和不同版本编译器的路径信息),这些文件里面保存了所有其所有版本的编译器的一些路径信息,mex命令找不到编译器或SDK问题就出在这些配置文件上,我大致把原因归结为两类:

        1、matlab版本问题  如上图所示,标明了不同类型版本的编译器配置文件,如果你的编译器版本的配置信息不再这个文件夹里面 自然会提示找不到到文件夹(比如说 msvc2017(貌似今年就会发布了吧))。这类问题网上有很多解决方法,提供了很多相应版本的配置文件,你只要将其拷到mexopts文件夹下,就解决了。

        2、配置文件里面的 路径和你电脑的实际路径不一致  我遇到的问题就属于这一类问题。以我的编译器版本vs2013做例子,你要仔细核对 msvc2013.xml和msvcpp2013.xml这两个配置文件的信息。我这里截取了一部分配置信息,如下图:

  我用彩笔勾出了一些关键信息,如 VC编译器的路径 、SDK的路径(这些是读取系统的注册表信息的,你可以去和你实际注册表信息进行比对)和VS的一些环境变量信息,我再一一对比后终于发现是自己VS环境变量VS120COMNTOOLS的路径出了问题。修改了正确的路径之后,问题解决了。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3