在matlab中使用mex可以編譯c/c++ ,但是首先要設定好編譯器,可以使用mex -setup命令來設定。如果電腦上是先安裝的visual studio,然後安裝matlab,那麼一般情況下,只需要在命令列輸入mex -setup按照提示選擇即可完成編譯器的設定。
但是,假如是先安裝的matlab後安裝的visual studio,或者其它一些原因,很可能mex -setup命令無法找到安裝好的visual studio編譯器,那麼就需要進行一些修改才能成功設定編譯器了。
由於matlab從2016版本以後使用xml檔案來儲存配置檔案,所以如果使用的matlab是2016以前的版本,方法可能和本文有所區別。(本文以matlab2016a和visual studio2012為例)
在matlab的安裝目錄\bin\win64\mexopts目錄中有各種編譯器的配置檔案,matlab就是依靠這些xml檔案和編譯器建立關聯:
對應編譯器的xml檔案會到windows系統的登錄檔中讀取編譯器和sdk的路徑資訊,之所以mex -setup命令無法找到編譯器就是因為登錄檔中缺少編譯器和sdk的路徑資訊。
對於matlab2016以前的版本,在\bin\win64\mexopts和mbuildopts目錄下是一些stp和bat檔案,這些檔案中也儲存著sdk和不同版本編譯器的路徑資訊。
為了清楚matlab2016搜尋編譯器和sdk的過程,使用mex -setup -v命令可以看到搜尋過程(下圖是已經修改好登錄檔後的搜尋過程):
以visual studio2012為例,matlab主要從登錄檔中讀取sdk和visual studio2012的安裝路徑,出現否代表登錄檔或環境變數中沒有相應的資訊或者資訊錯誤。可以根據具體情況修改登錄檔和環境變數。主要包括以下的路徑資訊:
其中,vs110comntools是環境變數,可以在:我的電腦-->屬性-->高階系統設定-->環境變數-->系統變數中修改或新增:
在登錄檔編輯器中,hkey_current_user和hkey_local_machine分別對應matlab中的hkcu和hklm:
然後在對應目錄下新增項(子目錄)和字串值(用於儲存路徑),例如在hkey_local_machine\software\microsoft\microsoft sdks\windows\下新建「v8.0」項,然後在該項中新建字串值,根據matlab搜尋過程中的提示命名為「installationfolder」,並填入數值資料,microsoft sdks一般位於c:\program files (x86)\windows kits\下。
依次把搜尋過程中出現否的地方修正,如果環境變數設定後不起作用,需要重啟電腦,然後進行mex -setup即可完成編譯器的設定。
Matlab2016及以上版本設定VS編譯器
在matlab中使用mex可以編譯c c 但是首先要設定好編譯器,可以使用mex setup命令來設定。如果電腦上是先安裝的visual studio,然後安裝matlab,那麼一般情況下,只需要在命令列輸入mex setup按照提示選擇即可完成編譯器的設定。但是,假如是先安裝的matlab後安裝的...
linux下安裝matlab 2016教程
說明 環境ubuntu 安裝要求 會linux基本的操作 2 安裝過程 2.1 將檔案進行解壓,推薦在windows上將兩個.iso檔案包分別解壓,解壓結束後在將matlab 2016 2檔案中所有檔案以合併方式複製到matlab 2016 1資料夾中,注意 兩個檔案解壓後都含有.的隱藏檔案,這兩個...
Android Uri解析4 4及以上版本相容
在android level 19之後,由於官方更新了uri的格式,因此需要採用最新的uri解析方式以適配,如果還採用android 4.4之前的解析方法 實際上目前網路上大部分還是這種方式 就會出現空指標的問題,實際上就是因為格式不匹配導致的解析失敗。參考實現如下,可以直接作為工具類加入現有 中。...