1

这是Subhash。我在链接 fortran-matlab mex 文件时遇到问题。我正在运行 MATLAB R2010a。我正在尝试在 MATLAB 中混合 fortran 子例程。我已经安装了 MSYS、MinGW 和 gfortran。我还在 c:\documents\MATLAB 文件夹中下载并提取了 gnumex。我输入 gnumex 运行安装设置。此时,我看到一个弹出窗口,我输入了以下内容:

  1. MinGW 的根目录 ---> 指向 c:\mingw b) Cygwin 的
  2. 根目录 -----> 留空 c)
  3. g95.exe 的路径 ------> c:\mingw\bin
  4. gfortran.exe 的路径 ------> c:\program files\gfortran\bin e)
  5. gnumex 实用程序的路径 ------> c:\users.....\matlab\gnumex
  6. 环境链接类型 ------> MinGW
  7. 生成 mex dll 或引擎-----> mex
  8. 编译语言-------> fortran 77
  9. 添加存根 ------> 否
  10. 优化级别 -----> -O3

  11. 库和 .def 文件的路径 c:\users...\Roaming\MathWorks\MATLAB\R2010a\gnumex

  12. 要创建的 Mex 选项文件:c\users...\Roaming\MathWorks\MATLAB\R2010a\mexopts.bat

以上是我用 gnumex 安装 mex 的设置。当我点击制作选项文件时,会弹出一条警告消息,上面写着“无法纠正 mex.pl .....“无法打开 c:...\R2010a\bin\mex.pl 进行写入”

当我点击确定时,它再次弹出确认覆盖 mexopts.bat 。我点击确认并创建了 opt 文件。

此时我应该准备好我的 mex 设置。但是,当我运行 fortran mex 示例 xtimesy.f 等时(我在命令提示符下使用 mex filename.f),我收到以下错误

g77:getValidInputLinkLibraries:没有这样的文件或目录 c:\prog~1\MATLAB\R2010A\BIN\MEX.PL:错误:“xtimesy.mexw32”的链接失败。在 222 处使用 ---> mex 时出错,无法成功完成。

我尝试了多次卸载,但最终出现了同样的错误。谁能让我知道我哪里出错了。这不是链接g77的正确程序吗?请对此有所了解。

我很感激你的时间..

谢谢。

4

1 回答 1

1

我最近尝试混合一些 fortran 例程,但由于 windows 中的 matlab 对 fortran 编译器的支持不佳而失败。我通过使用 f2c 将 fortran 转换为 C 代码解决了这个问题,然后在 C 中创建了一个网关例程,该例程调用自动生成的 C 代码函数并使用与 matlab 很好集成的 Visual Studio 2008 编译器(免费快递edition 版本就足够了,你也可以用它来调试)。

您可以从http://www.netlib.org/f2c/获取 f2c 。您必须将生成的 C 代码链接到 f2c 库,您可能还必须从源代码构建该库。

我知道这听起来很复杂,但这是我找到的最简单的解决方案。

于 2011-04-20T22:55:29.760 回答