声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2303|回复: 8

[编程技巧] matlab与fortran的接口问题

[复制链接]
发表于 2006-8-13 11:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
为什么我在matlab环境下用mex -setup命令选择了fortran编译器,但运行mex primef.f命令不能生成dll文件呢?
显示结果如下:
>> mex yprimef.f
   Creating library _lib6232.lib and object _lib6232.exp
_lib6232.exp : error LNK2001: unresolved external symbol _MEXFUNCTION@16
yprimef.dll : fatal error LNK1120: 1 unresolved externals

  C:\MATLAB6P5\BIN\WIN32\MEX.PL: Error: Link of 'yprimef.dll' failed.

??? Error using ==> mex
Unable to complete successfully
回复
分享到:

使用道具 举报

发表于 2006-8-13 11:15 | 显示全部楼层
可能是fortran版本问题,你的是什么版本?
发表于 2006-8-13 11:17 | 显示全部楼层
mex -setup的时候让系统自动检测已经安装的fortran看看是什么结果
 楼主| 发表于 2006-8-13 11:26 | 显示全部楼层
我的fortran是6.6的
怎么让系统自动检测已经安装的fortran啊?
发表于 2006-8-13 11:39 | 显示全部楼层
我用的是VF6.6,添加一个名为Fortran.lic的license文件后编译一直都是正常的
 楼主| 发表于 2006-8-13 17:57 | 显示全部楼层
那个文件是从哪来的?
发表于 2006-8-15 17:42 | 显示全部楼层
原帖由 sprit314 于 2006-8-13 17:57 发表
那个文件是从哪来的?


我安装完后自动就有了,在license目录下
发表于 2008-6-22 20:51 | 显示全部楼层

请教调用FORTRAN程序问题

楼上你好!刚刚因为论文需要计算接口,一直没有成功。现在向您请教。我是用MATLAB R2007a 调用v fortran6.5程序,按照书上写小的程序试验,总是出现这样的错误
mex fact.f90
Error fact.f90: 3  syntax error; found `mexfunction' expecting `;'
Error fact.f90: 4  extraneous old-style parameter list
Error fact.f90: 4  syntax error; found `integer' expecting `;'
Error fact.f90: 4  syntax error; found `plhs' expecting `;'
Error fact.f90: 4  syntax error; found `*' expecting `)'
Error fact.f90: 4  skipping `*'
Error fact.f90: 4  syntax error; found `*' expecting `)'
Error fact.f90: 4  skipping `*'
Error fact.f90: 5  syntax error; found `integer' expecting `;'
Error fact.f90: 5  syntax error; found `mxgetpr' expecting `;'
Error fact.f90: 6  syntax error; found `integer' expecting `;'
Error fact.f90: 6  syntax error; found `y_pr' expecting `;'
Error fact.f90: 7  syntax error; found `integer' expecting `;'
Error fact.f90: 7  syntax error; found `nlhs' expecting `;'
Error fact.f90: 8  syntax error; found `integer' expecting `;'
Error fact.f90: 8  syntax error; found `i' expecting `;'
Error fact.f90: 9  syntax error; found `real' expecting `;'
Error fact.f90: 9  syntax error; found `*' expecting `;'
Error fact.f90: 9  missing identifier
Error fact.f90: 9  syntax error; found `8' expecting `;'
Error fact.f90: 9  too many errors
  C:\PROGRA~1\MATLAB\R2007A\BIN\MEX.PL: Error: Compile of 'fact.f90' failed.
??? Error using ==> mex at 206
Unable to complete successfully.

我用的是matlab自带的编译器,编译C例子程序已经成功,就是fortran总是类似错误。
源程序是:
       subroutine mexfunction(nlhs,plhs,nrhs,prhs)
           integer plhs(*),prhs(*)
           integer mxgetpr,mxcreatedoublematrix
           integer y_pr
           integer nlhs,nrhs
           integer i
           real*8 x,y,mxgetscalar
           x=mxgetscalar(prhs(1))
        prhs(1)=mxcreatedoublematrix(1,1,0)
        y_pr=mxgetpr(plhs(1))
                y=1.0
                do i=x,1,-1
                y=y*i
                end do
                call mxcopyreal8toptr(y,y_pr,1)
                return
                end
望不吝赐教
发表于 2008-6-22 21:36 | 显示全部楼层

刚才补发完全 请高手指导

请问那个Fortran.lic对6.5版本合适吗?怎样得到呢?
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-18 00:33 , Processed in 0.077766 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表