回 帖 发 新 帖 刷新版面

主题:请问怎么用.f或.f90文件生成.o文件

     小弟最近在学一个matlab程序,里面用到了C++和fortran代码,由于在matlab中要使用C++代码,必须先把C++代码转换成.MEX文件,因为我的C++代码中用到了fortran77的一个文件,假定为a.f文件,将c++代码转换成.mex文件时,要使用到由a.f文件得到的a.o文件。以上是背景。

    以下是问题:

    1.我用的是win7系统,然后安装了vs2005和intel visual fortran 11.1,a.f文件里面只有subroutine函数,没有program,然后我打开intel visual fortran命令行,输入命令 ifort -o a.o a.f。就会出错,提示是:”libifcoremt.lib(for_main.obj):error LNK2019:无法解析的外部符号_MAIN_,该符号在函数_main中被引用。“ 请问下这个问题是怎么回事。

    2.我在一些地方看到说:intel visual fortran 不能在一个项目里面同时存在fortran和C++源代码。这是不是导致上面那个问题的原因呢。

    3.我想完成的是:由一个只有subroutine函数,没有program的fortran77或fortran90(因为我想将fortran77文件改为fortran90文件)文件,得到一个.o文件,并能成功使用到MATLAB中,最后得到一个.MEX文件。

     请大大们帮帮忙,谢谢了。

回复列表 (共1个回复)

沙发

1.我不确定你在 windows 下使用 matlab 是否真的需要 linux 下的 o 文件。你可以试试用 obj 文件是否可行?

2.如果你真的需要 o 文件, 那么,不妨让别人帮你编译为 o 文件。自己再去linux下配置编译器,多费劲啊?

我来回复

您尚未登录,请登录后再回复。点此登录或注册