matlab mbuild -setup找不到C++編譯器解決方案
本文配置環境:matlab2016b+vs2013
問題:想將.m文件打包成com組件供vb.net調用,但卻遇到“找不到C++編譯器”的問題
我嘗試了網上能找到的各種方法均不成功!最后我總結出以下方法:
首先確保你的matlab和vs都是正確安裝的,并且matlab的版本與vs互相兼容(不兼容的情況是自己下載matlab安裝目錄下mexopts文件夾內容,這種情況其他博主已有文章詳解,這里不再贅述)。然后可以用以下兩種方法“看到”matlab搜索C++編譯器的過程:
一、在matlab 命令窗口輸入deploytool
出現compiler對話框,選擇第三個進入“MATLAB Compiler”對話框
選擇“Generic COM Component”方式,添加類和.m文件后,選擇右上角Package打包
這時會出現打包失敗(由于我已經解決問題所以就不放圖了)的對話框,點擊紅字顯示的
“打包失敗,打開日志文件”,里面逐條顯示搜索過程和路徑。
二、在matlab 命令窗口輸入mcc -v -W ‘com:my_add,myclass,1.0’ -T link:lib myadd.m
其中my_add是要生成的COM組件名,myclass是其類名,版本為1.0,myadd是其方法(也就是添加的.m文件)
然后運行,會在命令窗口顯示搜索過程并最終結果是未找到任何已安裝的C++編譯器。
可以看到matlab自動開始搜索計算機上已安裝或者曾經安裝沒卸載干凈的C++編譯器,
從環境變量——注冊表——文件夾——文件依次進行,我們可以逐個過程地檢查自己的電腦設置和命令窗口顯示的是否一致,如果不一致再做修改使得和命令窗口顯示的一致。比如我的顯示:
正在查找文件’C:\Program Files\Microsoft Visual Studio 12.0\VC\bin\amd64\cl.exe’,否
原因是我的這個文件在’C:\Program Files(x86)'文件夾下,于是我把VC文件夾拷貝到\Program Files(x86)文件夾下果然就成功了。