m0_58132127 2024-04-03 11:18 采纳率: 0%
浏览 11

matlab调用Fortran

我使用的是matlab2021b和vs2019+Intel oneapi2024。

但我在matlab命令窗口输入mex my.f90时(my.f90是我自己编Fortran代码,就一个简单的输出hello),会出现以下错误提示:

(使用 'Intel oneAPI 2024 for Fortran with Microsoft Visual Studio 2019' 编译。

错误使用 mex

LINK : error LNK2001: 无法解析的外部符号 MEXFUNCTION

timestwo.lib : fatal error LNK1120: 1 个无法解析的外部命令)

  • 写回答

2条回答 默认 最新

  • 码农阿豪@新空间代码工作室 Java领域优质创作者 2024-04-03 11:19
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    问题:在Matlab中编译Fortran代码出现了链接错误,无法解析的外部符号MEXFUNCTION。 解答: 这个错误通常发生在Matlab没有正确连接MEX函数库时。MEX函数是Matlab提供用于连接C/C++/Fortran代码的接口,需要在编译时进行正确的链接。在这个特定错误中,MEX函数库没有被正确添加到链接器的搜索路径中,因此链接器找不到MEX函数库中定义的符号MEXFUNCTION。 解决这个问题的方法是在编译时指定正确的搜索路径,并将MEX函数库包含在链接器的参数中。以下是一种可能的解决方案,假设MEX函数库在C:\Program Files\MATLAB\R2021b\extern\lib\win64\microsoft 目录中。 在Matlab中运行以下命令来编译Fortran源文件: mex -v -largeArrayDims -I"C:\Program Files\MATLAB\R2021b\extern\include" -L"C:\Program Files\MATLAB\R2021b\extern\lib\win64\microsoft" -lmatlab -lmat -lfmx my.f90 这个命令使用了以下选项: -v:打印编译过程中的详细输出。这可以帮助找出编译错误的根源。 -largeArrayDims:启用大数组支持。 -I:指定头文件搜索路径。 -L:指定库文件搜索路径。 -l:将指定的库文件添加到链接器的参数列表中。 这个命令应该能够成功编译my.f90,并生成一个可执行的MEX函数。如果还是编译失败,可以检查是否安装了正确的Intel OneAPI和VS2019版本,并查看是否正确配置了Matlab的编译器设置。 以下是一个简单的Fortran程序作为例子,可以通过上述命令编译成MEX函数: ! my.f90 program hello print*, "Hello from Fortran!" end program hello 编译后在Matlab中运行:

    my Hello from Fortran!

    评论

报告相同问题?

问题事件

  • 创建了问题 4月3日

悬赏问题

  • ¥15 网友们我该怎么办啊,急
  • ¥15 混合键合键合机对准标识
  • ¥100 现在不懂的是如何将当前的相机中的照片,作为纹理贴图,映射到扫描出的模型上
  • ¥15 目标跟踪,计算机视觉
  • ¥15 魔霸ROG7 pro,win11.息屏后会显示黑屏,如图,如何解决?(关键词-重新启动)
  • ¥15 有没有人知道这是哪里出了问题啊?要怎么改呀?
  • ¥200 C++表格文件处理-悬赏
  • ¥15 Windows Server2016本地登录失败
  • ¥15 复合卡卡号轨道写入芯片卡
  • ¥20 基于MATLAB的TDOA