看板 MATLAB 關於我們 聯絡資訊
今早在試可免費取得的MATLAB Compiler Runtime (MCR) R2012b 發現並沒有提供所有Visual C++ DLL import libraries, 例如可存取MAT file的libmat.lib,然後就無法開發可存取MAT file的C/C++程式。 除非要花錢買MATLAB。 我有點不服氣,為了存取MAT file就得買MATLAB, 有點不符合現今許多開放software development kit (SDK)的潮流, 就去MathWorks網站發了篇文: http://www.mathworks.com/matlabcentral/answers/83926-why-doesn-t-mcr-provide-libmat-lib 縮:http://bit.ly/18V1DTt 後來試著安裝最新版的MCR R2013a才發覺被打臉了。 這個版本有提供libmat, libmx! MCR下載網址: http://www.mathworks.com/products/compiler/mcr/index.html 後記: 後來發現原來自己是老古董, 其實MCR很早就改用mclmcrrt.h與mcrmcrrt.lib, 而不是使用mat.h/libmat.lib與matrix.h/libmx.lib。 mcrmcrrt有向下相容mat與mx,只要在C/C++程式call任何MATLAB API前call這一行: mclInitializeApplication(NULL, 0); 這也解了我心中的一個疑惑,就是為何MCR installer會附加 F:\Program Files (x86)\MATLAB\MATLAB Compiler Runtime\v81\runtime\win32 到PATH環境變數(裡面有mclmcrrt8_1.dll), 而不是附加 F:\Program Files (x86)\MATLAB\MATLAB Compiler Runtime\v81\bin\win32 (裡面有libmat.dll與libmx.dll)。 -- 楞嚴咒(附注音): http://sdrv.ms/130iapv -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.73.148
mailroach:推一個 08/04 21:08
zxvc:補充一下,官方的說法反而不建議使用mclmcrrt,因為它本來是 08/04 21:48
zxvc:給MATLAB Compiler轉出的library使用的: 08/04 21:50
zxvc:http://bit.ly/17s7soj 08/04 21:50
zxvc:反而mat/mx的使用在MATLAB的說明書是能找得到的。 08/04 21:51
zxvc:但奇怪的是它們dll所在的位置不會被MCR安裝器加入PATH。 08/04 21:53
zxvc:這樣把程式傳給別人使用是有點麻煩,不是叫對方裝個MCR就好了 08/04 21:56
zxvc:。所以要link mat/mx還是mclmcrrt,就看個人的選擇了。 08/04 21:57