Mac中matlab和c++混合編程

環境:mac+matlab2016b破解版

在matlab中svm工具包運行出現問題:

(1)未定義函數或變量 'qp'  

 Undefined function ormethod 'qp'

這裏出錯是因爲

qp是二次劃函數,用於求解SVM中的拉格朗日乘子,是採用的c++和matlab編程,所以需要mex一下,這裏有一個mex在不同windowsOS編譯果,所以我需要重新編譯一下qp.dll
方法:svm的包下面有一個optimiser 文件,把currentDiretoryoptimiser,例如D:\ProgramFiles\MATLAB\R2007a\toolbox\svm\Optimiser,然後運行命令
>> mex -v qp.c pr_loqo.c
命令運行完後,你會發現原先的qp.dll變爲qp.dll.oldqp.mexmaci64,我文件改qp.dll 複製到工具箱文件下。原先的工具箱文件qp.dll可以先改一下名字.... 

2)如果此解決了最好,如果解決不了,報錯:錯誤使用mex 未找到支持的編譯器或 SDK

明你的電腦裏沒有c++編譯環境,mac電腦需要安裝xcode,如果在app store安裝是最新版的,可能與你低版本的matlab不兼容,所以安裝xcode7.0版本的最好,些版本在北人bt上都可以找到,或者通我的網

https://pan.baidu.com/s/10Q583-s_ooEeuATaNfm8pg

安裝之後就可以找到了

弄好之後,重啓matlab,輸入命令

mex -setup 

如果不報錯成功了。

(3)如果之前安裝過較高版本的xcode,卸之後,mex –setup示之前的版本號,不兼容,所以裏需要更一下xcode的版本

參考https://www.jianshu.com/p/8c8933eebdf3

應該就可以利的運行啦。。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章