2011-01-21 90 views
2

我維護一個包含大量MEX文件的Matlab庫。到目前爲止,我已經用Matlab腳本構建了庫,但是現在我想開始使用Microsoft Visual Studio IDE進行整個構建過程。很遠我已經得到了具有以下的說明:如何在單個Visual Studio項目中創建多個.dll文件(.mexw32文件)?

但是這些指令似乎只與一個MEX文件的工作。我遇到的問題是如何在單個Visual Studio項目中構建多個.mexw32目標(或同等的.dll目標)?在MEX文件中創建單獨的項目(在同一解決方案中)不是我想要考慮的選項。這些文件數以百計。

對於那些不熟悉Matlab的人來說,MEX文件是用C++編寫的擴展文件,基本上編譯成帶有特殊擴展名.mexw32的.dll文件。其中每個出口都有一個入口點void mexFunction(...)。 AFAIK你不能將這些鏈接到一個單一的.dll這是我更喜歡做的。

+0

百的MEX文件?爲什麼不用C++編寫整個程序? –

回答

0

我認爲爲每個MEX文件創建一個項目並將它們放入一個解決方案是唯一的選擇。項目文件旨在表示一個目標,是靜態庫,動態庫還是可執行文件。解決方案旨在表示一系列項目以及它們如何相互依賴。這正是你需要的。

也許你必須研究用一些腳本來自動化整個事情的可能性,以創建如此大量的項目並將它們添加到單個解決方案中。

1

在MATLAB腳本中建立它可能更容易。例如一個這樣的MATLAB命令:

mex -f msvc90opts.bat MyMexFile.c 

會完成這項工作。你顯然每個MEX文件都有一行。 msvc90opts.bat文件基於在bin\win32\mexopts下的MATLAB安裝文件夾中提供的模板。

對於我的構建過程中,我則換這些調用mex成一個函數,然後使用調用該命令行:

matlab.exe -wait -sd . -nosplash -nojvm -r "BuildMex, exit" 
相關問題