qushen001 发表于 2011-3-25 11:00:14

matlab调用fortran的mex文件出错:matlab has encountered an internal problem

首先感谢messenger和liuyalong008的帮助

mex -setup设置成功,我用的是intel visual fortran11.1和matlab R2008a
做taohe《深入浅出matlab 7.x 混合编程》125页例4-4时,文件入下:

然后matlab下运行mex -v sample.for

This is mex, Copyright 1984-2007 The MathWorks, Inc.

-> Default options filename found in C:\Documents and Settings\qushen\Application Data\MathWorks\MATLAB\R2008a
----------------------------------------------------------------
->    Options file         = C:\Documents and Settings\qushen\Application Data\MathWorks\MATLAB\R2008a\mexopts.bat
      MATLAB               = D:\MATLAB\R2008a
->    COMPILER               = ifort
->    Compiler flags:
         COMPFLAGS         = /fpp /Qprec "/ID:\MATLAB\R2008a/extern/include" -c -nologo -DMATLAB_MEX_FILE /fixed /MD /fp:source /assume:bscc
         OPTIMFLAGS          = -Ox -DNDEBUG
         DEBUGFLAGS          = /Z7
         arguments         =
         Name switch         = /Fo
->    Pre-linking commands   =
->    LINKER               = link
->    Link directives:
         LINKFLAGS         = /DLL /EXPORT:MEXFUNCTION /LIBPATH:"D:\MATLAB\R2008a\extern\lib\win32\microsoft" libmx.lib libmex.lib libmat.lib /implib:"C:\DOCUME~1\qushen\LOCALS~1\Temp\mex_6nJuOO\templib.x" /MAP:"sample.mexw32.map" /NOLOGO /INCREMENTAL:NO
         LINKDEBUGFLAGS      = /debug /PDB:"sample.mexw32.pdb"
         LINKFLAGSPOST       =
         Name directive      = /out:"sample.mexw32"
         File link directive =
         Lib. link directive =
         Rsp file indicator= @
->    Resource Compiler      = rc /fo "mexversion.res"
->    Resource Linker      =
----------------------------------------------------------------


--> ifort/fpp /Qprec "/ID:\MATLAB\R2008a/extern/include" -c -nologo -DMATLAB_MEX_FILE /fixed /MD /fp:source /assume:bscc /FoC:\DOCUME~1\qushen\LOCALS~1\Temp\mex_6nJuOO\sample.obj -Ox -DNDEBUG -DMX_COMPAT_32 D:\MyProjects\mextry\sample.for

    Contents of C:\DOCUME~1\qushen\LOCALS~1\Temp\mex_6nJuOO\mex_tmp.rsp:
C:\DOCUME~1\qushen\LOCALS~1\Temp\mex_6nJuOO\sample.obj


--> link /out:"sample.mexw32" /DLL /EXPORT:MEXFUNCTION /LIBPATH:"D:\MATLAB\R2008a\extern\lib\win32\microsoft" libmx.lib libmex.lib libmat.lib /implib:"C:\DOCUME~1\qushen\LOCALS~1\Temp\mex_6nJuOO\templib.x" /MAP:"sample.mexw32.map" /NOLOGO /INCREMENTAL:NO@C:\DOCUME~1\qushen\LOCALS~1\Temp\mex_6nJuOO\mex_tmp.rsp   

   Creating library C:\DOCUME~1\qushen\LOCALS~1\Temp\mex_6nJuOO\templib.x and object C:\DOCUME~1\qushen\LOCALS~1\Temp\mex_6nJuOO\templib.exp

--> del "sample.mexw32.map"


--> del "C:\DOCUME~1\qushen\LOCALS~1\Temp\mex_6nJuOO\templib.x" "C:\DOCUME~1\qushen\LOCALS~1\Temp\mex_6nJuOO\templib.exp"


--> mt -outputresource:"sample.mexw32";2 -manifest "sample.mexw32.manifest"

Microsoft (R) Manifest Tool version 5.2.3790.2075
Copyright (c) Microsoft Corporation 2005.   
All rights reserved.

--> del "sample.mexw32.manifest"
这应该是编译没问题吧?

然后给出x的值
>> x=2.0
>> y=sample(x)
matlab就出现错误了


这是什么错误啊,我完全照例题做的,只是文件名换了一下罢了。
请大侠出手给看看,多谢了!

qushen001 发表于 2011-3-25 11:01:45

图像可能不清晰,附件如下

blue_sea 发表于 2014-3-27 16:24:21

你好,我现在也遇到这样的问题,请问你的问题解决没?
页: [1]
查看完整版本: matlab调用fortran的mex文件出错:matlab has encountered an internal problem