dongjun1101 发表于 2007-4-28 23:58

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

来帮帮我啊

eight 发表于 2007-4-29 00:24

原帖由 dongjun1101 于 2007-4-29 00:02 发表
来帮帮我啊
matlab不能直接编译 c 的文件,需要满足一定的格式的 c 文件才能用 mex 编译,具体请参考图中的帮助:

shunfly 发表于 2007-4-29 02:13

R13下,由于提供了C/C++数学库
借此好处
MATLAB可以直接编译C格式的
但不是编译MEX
而是mbuild
7.0的没有用过
不知道mbuild如何了
楼主参考看MATLAB的extern\examples\mex下的目录吧

[ 本帖最后由 shunfly 于 2007-4-29 02:16 编辑 ]

gzowen 发表于 2007-4-30 11:02

高手帮忙啊!为什么输入mbuild -setup时,而输出结果是??? Undefined command/function 'mbuild'.
Give me help!

shunfly 发表于 2007-4-30 12:23

不就是编译MEX文件么
直接在VC中建立WIN32动态链接库
在DEF文件定义导出函数为mexFunction
在CPP源文件中直接写代码
或者COPY MATLAB的例子
注意设置VC的工程
包含MATLAB的INCLUDE和LIB
LINK MATLAB的lib库
PS:仔细看清楚我上面说的
       看MATLAB的例子
你把例子编译成功了,你就会了

[ 本帖最后由 shunfly 于 2007-4-30 12:30 编辑 ]

gzowen 发表于 2007-4-30 14:27

上楼,你能不能详细讲解下你所讲的每一步具体怎么设置,因为VC++刚学,没设置过环境,拜托啦!

dongjun1101 发表于 2007-4-30 19:46

虽然它一直报错,但是我的DLL文件已经生成了,这样计算出来的结果会不会不对啊

shunfly 发表于 2007-4-30 21:42

.........
一下针对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]
查看完整版本: VC和matlab混合编程问题