VS2010與Matlab2010b混合編程


VS2010與Matlab2010b混合編程

      套用今天的簽名“最新的VS+最新的MATLAB+最新的WINDOWS=無盡的煩惱 ”,用了一天的時間去配置相關的環境,確實很囧。好在現在問題解決了,特發布過程如下,希望能給有需要的朋友帶來幫助。

 

注:因為程序也是剛調通,所以有些原因還沒有仔細分析,如果不對,敬請指教。

1.<MATLAB>表示MATLAB按照目錄

2. 配置過程中的錯誤,請見:附錄

3.文中包含"只針對64位WINDOWS"字眼設置的,在WIN32(X86)環境無需設置

4.本文配置中可能包含多余的一些配置,不過現在的目的是運行成功哈~~~至於精簡部分,待我和大家使用時慢慢研究。

  

/*******************************************

環境:

1.VS2010

2.MATLAB 2010b

3.WINDOW 7 (X64)

******************************************/

  

1.Matlab環境設置

       要建立獨立運行的C應用程序,系統中需要安裝Matlab、Matlab編譯器、C/C++編譯器以及Matlab C/C++數學庫函數和圖形庫函數。
Matlab編譯器使用mbuild命令可以直接將C/C++源代碼編譯為獨立運行程序,在這些源代碼中可以使用Matlab提供的接口來調用Matlab數學庫函數。
       雖然生成的可執行程序可以脫離Matlab環境運行,但是它需要Matlab C/C++數學庫文件或者圖形庫文件的支持才能運行。但如果C/C++源代碼完全是按傳統C/C++源代碼語法規則編寫,沒有包含Matlab數學庫和圖形庫的調用,則不僅可以獨立與Matlab環境,也不需要那兩個庫函數的支持。

      在 Matlab 的Command Window 下輸入命令

       mbuild – setup

      操作過程如下圖:

 

 

 

 

 

    然后輸入命令

    mex – setup

    以類似的方法配置編譯器。Matlab 的配置完成。

 

2.VS環境設置

(1)設置Include 和Library 目錄

    項目右鍵->屬性->VC++目錄->包含目錄:添加

    <MATLAB>\R2010b\extern\include\win64

    <MATLAB>\R2010b\extern\include\

    項目右鍵->屬性->VC++目錄->庫目錄:添加

    <MATLAB>\R2010b\extern\lib\win32\microsoft

    <MATLAB>\R2010b\extern\lib\win64\microsoft

    截圖(部分):

 

 

 

 

(2)設置工程目錄

    項目右鍵->屬性->C/C++->常規->附件包含目錄:添加

    <MATLAB>\R2010b\extern\include\win64

    <MATLAB>\R2010b\extern\include\

     項目右鍵->屬性->鏈接器->常規:添加

     <MATLAB>\R2010b\extern\lib\win32\microsoft

    <MATLAB>\R2010b\extern\lib\win64\microsoft

    項目右鍵->屬性->鏈接器->輸入->附件依賴性:添加

    libeng.lib
    libmat.lib
    libmex.lib
    libmx.lib  

    注:1.lib文件包含在<MATLAB>\R2010b\extern\lib\win64\microsoft,可根據需要增減

           2.附件依賴性在VS2010前以空格隔開,在VS2010后使用;隔開。

    截圖:

 

 

 


    項目右鍵->屬性->鏈接器->高級->目標計算機:更改(只針對64位WINDOWS

    MachineX86 -> MachineX64

    注:分析原因為MATLAB根據計算機平台選擇了X64編譯環境,如此處不修改會出現 錯誤3   

(3)配置管理器設置(只針對64位WINDOWS

    生成->配置管理器->平台:更改

    Win32->X64

    注:分析原因為配合鏈接器中目標計算機的修改,如此處不修改會出現 錯誤4

    截圖:

 

 

 

 

 


 

3.系統(Windows)環境設置

   我的電腦->屬性->高級系統設置->高級->環境變量->Path,添加:

     <MATLAB>\R2010b\bin;<MATLAB>\R2010b\extern\lib\win64\microsoft;<MATLAB>\bin\win64

    注:1.Windows7的情況下,“用戶變量”和“系統

變量”都需 添加,如不添加,運行時會出現 錯誤5

 

 

           2.哈哈,別忘記重啟哈,重啟后生效

  

    

   OK!配置就此結束,現在就開始engOpen吧!!對了,別忘記添加#include "engine.h"。

 

 

附錄:錯誤情況及解決

 

 

 

 

2.提示:“libeng.lib libmat.lib"無法打開

解決:附件依賴性在VS2010前以空格隔開,在VS2010后使用;隔開。

 

3.提示:“  "error LNK2019: 無法解析的外部符號 _interp1Initialize,該符號在函..."”

解決:操作如2.VS環境設置中的(2) 項目右鍵->屬性->鏈接器->高級->目標計算機:更改...及(3)

 

4.提示:“  "模塊計算機類型“X86”與目標計算機類型“x64”沖突..."”

解決:操作如2.VS環境設置中的(3)

 

4.提示:“ 系統丟失libeng.dll..."”

解決:操作如 3.系統環境設置 

 

1.mbuild – setup后沒有“VS2010”選項
解決:MATLAB 2010b 之后包含對VS2010編譯器的支持,2010a及之前版本不包含支持。如果MATLAB環境較低,Matlab官方有一個補丁(http://www.mathworks.com/support/solutions/en/data/1-D5W493/?solution=1-D5W493)

源地址:http://blog.renren.com/GetEntry.do?id=721771317&owner=240190126


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM