VC和matlab混合编程问题
发表于 2007-4-28 23:49
MATLAB和C++的问题
To get started, select MATLAB Help or Demos from the Help menu.
>> mex afdtdpbg.c
Specified export _mexFunction is not defined
Missing exports. Aborting
D:\MATLAB7.0\BIN\WIN32\MEX.PL: Error: Link of 'afdtdpbg.dll' failed.
??? Error using ==> mex
Unable to complete successfully
>>
这个是运行时的代码,MEX.PL就是一个记事本,是不是在编写上有什么问题呢,MET-SETUP和SBUILD-SETUP已经建立好了,两个C++的程序已经贴到WORK目录下了,下面是MEX.PL的程序,大家帮忙想想是怎么了
MEX.PL的内容太多了,我把它用两个附件发了上来,大家看看吧,谢谢了
[ 本帖最后由 eight 于 2007-4-29 00:17 编辑 ] 来帮帮我啊 原帖由 dongjun1101 于 2007-4-29 00:02 发表
来帮帮我啊
matlab不能直接编译 c 的文件,需要满足一定的格式的 c 文件才能用 mex 编译,具体请参考图中的帮助: R13下,由于提供了C/C++数学库
借此好处
MATLAB可以直接编译C格式的
但不是编译MEX
而是mbuild
7.0的没有用过
不知道mbuild如何了
楼主参考看MATLAB的extern\examples\mex下的目录吧
[ 本帖最后由 shunfly 于 2007-4-29 02:16 编辑 ] 高手帮忙啊!为什么输入mbuild -setup时,而输出结果是??? Undefined command/function 'mbuild'.
Give me help! 不就是编译MEX文件么
直接在VC中建立WIN32动态链接库
在DEF文件定义导出函数为mexFunction
在CPP源文件中直接写代码
或者COPY MATLAB的例子
注意设置VC的工程
包含MATLAB的INCLUDE和LIB
LINK MATLAB的lib库
PS:仔细看清楚我上面说的
看MATLAB的例子
你把例子编译成功了,你就会了
[ 本帖最后由 shunfly 于 2007-4-30 12:30 编辑 ] 上楼,你能不能详细讲解下你所讲的每一步具体怎么设置,因为VC++刚学,没设置过环境,拜托啦! 虽然它一直报错,但是我的DLL文件已经生成了,这样计算出来的结果会不会不对啊 .........
一下针对MATLAB6.5 + VC6.0
MATLAB7没用过,请参考《深入浅出MATLAB7.X混合编程》
好好的搜索引擎怎么就不喜欢利用了?
VC --- FILE ---- NEW ---PROJECTS ---- WIN32 Dynamic Link Library
建立空DLL工程 名:MatlabDll
添加 MatlabDll.cpp文件
内容:#include "mex.h"
#pragma comment(lib,"libmx.lib")
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray*prhs[])
{
plhs = mxCreateDoubleMatrix(1,1,mxREAL);
}添加 MatlabDll.def文件
内容:LIBRARY "MatlabDll.DLL"
EXPORTS mexFunction因为包含了mex.h,链接了libmx.lib
所以
VC - Tools---Options ---Directories ----
Include Files
添加MATLAB的include路径
大概为MATLAB65\EXTERN\INCLUDE
Library Files
添加MATLAB的iLib路径
大概为MATLAB65\EXTERN\INCLUDE
MATLAB65\EXTERN\LIB\WIN32\MICROSOFT\MSVC60
[ 本帖最后由 shunfly 于 2007-4-30 21:43 编辑 ]
页:
[1]