使用Matlab mex时出错

问题描述 投票:0回答:1

我正在使用 Matlab 2023a 使用 mex 调用 Fortran 源文件。我使用以下编译器进行 Fortran 语言编译:

适用于 Fortran 的英特尔 oneAPI 2023 与 Microsoft Visual Studio 2022。

我用来编译的代码是

mex ero_dep_fortran.f90 -输出 ero_dep_fortran

但是,我遇到了以下错误:

使用 mex 时出错 C:\Users 967\Desktop\纸库倒塌和曲折迁移\Draft-version2\Code ro_dep_fortran.lib �Ͷ��� C:\Users 967\Desktop\纸库倒塌和蜿蜒迁移\Draft-version2\Code ro_dep_fortran.exp ero_dep_fortran.obj : 错误 LNK2019: �����������ⲿ���� NEW_EPOINTS_ASSIGNMENT���÷����带����MEXFUNCTION �б����� ero_dep_fortran.obj : 错误 LNK2019: �����������ⲿ���� omp_get_wtime��÷����带���� BANK_EROSION_CALCULATION_ENTRY �б����� C:\Users 967\Desktop\纸库倒塌和蜿蜒迁移\�����������\Draft-version2\Code ro_dep_fortran.mexw64 : 致命错误 LNK1120: 2������������ ⲿ����

错误中有很多乱码。我可能找到了主要问题

ero_dep_fortran.obj:错误LNK2019

但我不知道如何解决它...此代码可以在其他具有较低版本的Matlab和Intel Parallel Studio XE、Microsoft Visual Studio的计算机上运行。

如有任何建议,不胜感激......

matlab fortran intel mex intel-oneapi
1个回答
0
投票

例如,在 PC 上,您可以在 matlabroot in\win64\mexopts 目录中检查与您的编译器对应的 xml 文件。然后寻找与此类似的行:

 COMPFLAGS="/nologo /fpp /Qprec /fixed /MD /fp:source /assume:bscc $INCLUDE  $COMPDEFINES"

删除 /fixed 选项,使该行看起来像这样:

 COMPFLAGS="/nologo /fpp /Qprec /MD /fp:source /assume:bscc $INCLUDE  $COMPDEFINES"
© www.soinside.com 2019 - 2024. All rights reserved.