shuangbolover 发表于 2009-5-17 22:53

急:关于MATLAB和fortran的接口问题!

各位老师,大家好!
      小弟遇到一些问题,想问一下:fortran被MATLAB调用的问题。
       调用的过程是:在调用的过程中MATLAB先给fortran传递三个参数,fortran利用传过来的这三个参数进行计算后再把另一个结果参数(一个值)传给MATLAB,所以我需要生成一个fortran语言的mex文件,编好后刚开始build时,有10个错误,如下:

                Linking...
                mexfile_CaclT90.obj : error LNK2001: unresolved external symbol _MEXERRMSGTXT@8
                mexfile_CaclT90.obj : error LNK2001: unresolved external symbol _MXGETM@4
                mexfile_CaclT90.obj : error LNK2001: unresolved external symbol _MXGETN@4
                mexfile_CaclT90.obj : error LNK2001: unresolved external symbol _MXISNUMERIC@4
                mexfile_CaclT90.obj : error LNK2001: unresolved external symbol _MXCREATEFULL@12
                mexfile_CaclT90.obj : error LNK2001: unresolved external symbol _MXGETPR@4
                mexfile_CaclT90.obj : error LNK2001: unresolved external symbol _MXCOPYPTRTOREAL8@12
                mexfile_CaclT90.obj : error LNK2001: unresolved external symbol _MXCOPYREAL8TOPTR@12
                dfor.lib(DFORMAIN.OBJ) : error LNK2001: unresolved external symbol _MAIN__
                Debug/mexfile_CaclT90.exe : fatal error LNK1120: 9 unresolved externals
                Error executing link.exe.
                mexfile_CaclT90.exe - 10 error(s), 0 warning(s)

          我通过论坛里一个高手的指点,采用方法如下:
               在tools->directory 里设置 include 和 lib目录 记住要包括以下目录
include ->C:\Program Files\Microsoft Visual Studio\DF98\Include
include->C:\Program Files\Microsoft Visual Studio\DF98\IMSL\Include
include->D:\MATLAB\EXTERN\INCLUDE

lib->D:\MATLAB\EXTERN\LIB\WIN32
lib->D:\MATLAB\EXTERN\LIB\WIN32\DIGITAL\DF60
lib->C:\Program Files\Microsoft Visual Studio\DF98\IMSL\Lib
lib->C:\Program Files\Microsoft Visual Studio\DF98\Lib

            并在project->setting->link->Object/library modules里添加libmx.lib libmat. lib libeng.lib

      我按照以上方法进行设置,编译fortran的时候错误由10个变为了只有3个,但这三个错误不知道要如何改,还存在的错误如下:
Linking...
mexfile_CaclT90.obj : error LNK2001: unresolved external symbol _MEXERRMSGTXT@8
dfor.lib(DFORMAIN.OBJ) : error LNK2001: unresolved external symbol _MAIN__
Debug/mexfile_CaclT90.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.
mexfile_CaclT90.exe - 3 error(s), 0 warning(s)

      我使用的编译器是:CVF6.6
       我真的不知道改如何解决了,想麻烦一下各位程序高手帮帮忙,小弟在此不甚感激!真心谢谢各位!

shuangbolover 发表于 2009-5-18 14:31

怎么都没人帮帮忙,给予一下帮助!谢谢大家了!

shuangbolover 发表于 2009-5-19 09:23

如今通过更改只含有一个错误了,想麻烦哪位帮帮忙,帮解决一下这个错误!谢谢!
error LNK2001: unresolved external symbol _MEXERRMSGTXT@8

skyseafang 发表于 2010-3-18 08:31

我也遇到类似问题

10-3-18 08:30

你好我在用Fortran和chemkin编译连接过程中,单纯的用Fortran编译我的小程序出现如下错误,与你遇到的问题类似,请问如何解决的?谢谢!

Creating library Debug/creslaf_user_routines.lib and object Debug/creslaf_user_routines.exp
creslaf_user_routines.obj : error LNK2001: unresolved external symbol _CKCOMP@24
dfor.lib(DFORMAIN.OBJ) : error LNK2001: unresolved external symbol _MAIN__
Debug/creslaf_user_routines.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.
页: [1]
查看完整版本: 急:关于MATLAB和fortran的接口问题!