我正在尝试一些不受支持的东西。 我想使用NAG Fortran编译器(版本5.3.1)来编写Fortran文件。
使用命令:
nagfor -ideclient -abi=64 -compatible -fpp -I"C:\Program Files\MATLAB\R2013b\extern\include" -Wl,-shared -thread_safe -L"C:\Program Files\MATLAB\R2013b\bin\win64" timesto.F -lmx -lmex -lmat -o timesto.mexw64
我能够编译和链接timestwo.F
Fortran示例的改编版本。
我使用了下面非常简单的代码,这很有效。
#include "fintrf.h"
subroutine mexFunction(nlhs, plhs, nrhs, prhs)
C Declarations
implicit none
C mexFunction arguments:
mwPointer plhs(*), prhs(*)
integer nlhs, nrhs
call mexEvalString('why')
end
请注意mexEvalString
是一个函数。
如果我现在改变
call mexEvalString('why')
进入
call mexErrMsgTxt('why')
编译仍然有效。 然而,Matlab在没有给出任何指示原因的情况下崩溃。
我在两个陈述之间看到的唯一区别是,一个包含一个子程序而不是一个函数。
出了什么问题,我该如何解决这个问题?