c++與matlab聯合編程,調用Deploytool 生成exe文件和dll文件(轉)


轉自:http://www.cnblogs.com/xlw1219/archive/2012/12/25/2832222.html

首先必須知道聯合編程需要知道的一些命令解釋:

mcc 的作用是將 .m文件編譯為 c/c++動態鏈接庫文件,使你可以在 c/c++程序中使用 matlab的一些函數功能。mcc 也可以將.m文件編譯為exe可執行文件。

mex 的作用是將 c/cpp文件編譯為 .m  文件可以調用的庫文件,在Windows操作系統里通常是以mexw32或mexw64為擴展名,讓你可以使用 c/c++來擴展 matlab,即在matlab中調用C/C++編寫函數的功能,達到增加新的功能或者加速原有程序的功能。

mbuild 的作用是將 matlab視為一個 c/c++編譯器,使用mbuild可以將 c/c++編譯為 exe可執行文件,特色在於可以調用 matlab的數學庫和圖形庫,但這樣需要使用 matlab提供的動態連接庫才能運行。

注意:我之前輸入mcc命令后,出現了Test checkout of feature 'Compiler' failed的問題,原因是matlab2014a沒有破解,按照下面的鏈接解決:

http://blog.csdn.net/smilebluesky/article/details/42987985

 --------------------------------------分割線-----------------------華麗轉身-------------------------------

 在做matlab和C++混合編程時要對系統進行設置。比如我要用deploytool生成c++的動態鏈接庫(下面有圖),必須先要運行mbuild -setup命令。

注意,我用的是matlab2014a,跟文中不同,具體的deploytool的編譯過程如下:

命令行輸入deploytool:選擇 application compiler

然后,進入下面頁面,在add main file里添加主要執行的.m文件,再在下面運行應用程序里添加輔助的.m文件,然后點擊package,生成exe文件。

編譯結束后,會生成三個文件夾:點擊for_testing文件夾下的exe可執行文件,即可運行。

后面的工作就很簡單了,新建個c++工程,把生成的ImageConvert.exe加到工程里,寫上:

#include <windows.h>

int main()

{

system("ImageConvert.exe");

}

一次性運行通過。


免責聲明!

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



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