我有一个扩展名为.F的文件,我想编译它,以便与我的Matlab代码一起使用。为了做到这一点,我正在尝试使用mex工具。"mex -setup FORTRAN -v“返回。
mex -setup FORTRAN -v
详细模式已开启。
..。寻找编译器'Intel Visual XE 2011与微软SDK 7.1‘.
..。寻找环境变量'IFORT_COMPILER12‘...No。
没有找到已安装的编译器'Intel Visual Fortran Composer XE 2011与Microsoft 7.1‘。
..。寻找编译器'Intel Visual XE 2011与微软Visual 2008‘.
..。寻找环境变量'IFORT_COMPILER12‘...No。
未找到已安装的编译器“Intel Visual Fortran Composer XE 2011 with Microsoft Visual Studio 2008”。
..。寻找编译器'Intel Visual XE 2011与微软Visual 2010‘.
..。寻找环境变量'IFORT_COMPILER12‘...No。
未找到已安装的编译器“Intel Visual Fortran Composer XE 2011 with Microsoft Visual Studio 2010”。
..。寻找编译器'Intel Visual XE 2013与微软Visual 2008‘.
..。寻找环境变量'IFORT_COMPILER14‘...No。
..。寻找环境变量'IFORT_COMPILER13‘...No。
未找到已安装的编译器“Intel Visual Fortran Composer XE 2013 with Microsoft Visual Studio 2008”。
..。寻找编译器'Intel Visual XE 2013与微软Visual 2010‘.
..。寻找环境变量'IFORT_COMPILER14‘...No。
..。寻找环境变量'IFORT_COMPILER13‘...No。
未找到已安装的编译器“Intel Visual Fortran Composer XE 2013 with Microsoft Visual Studio 2010”。
..。寻找编译器'Intel Visual XE 2013与微软Visual 2012‘.
..。寻找环境变量'IFORT_COMPILER14‘...No。
..。寻找环境变量'IFORT_COMPILER13‘...No。
未找到已安装的编译器“Intel Visual Fortran Composer XE 2013 with Microsoft Visual Studio 2012”。
使用mex时出错
未找到受支持的编译器或SDK。有关选项,请访问http://www.mathworks.com/support/compilers/R2014b/win64.html。
在我看来,问题在于我没有任何默认编译器。所以我用gfortran编译器下载了MGW,现在我想把它设置为mex编译的工具。我还没有找到任何关于如何上网的说明。我很乐意就如何做到这一点或任何其他方式提出建议。
为那些能想到其他选择的人提供一些额外的信息。我得到了扩展名为.F的文件,我用扩展mexa64编译了二进制文件,后者是Linux二进制的意思。但我需要得到的是mexw64,这是64位Windows的版本。
----这是getCompilerConfigurations的输出,它表明存在一个C编译器,而没有Fortran编译器
mex.getCompilerConfigurations('C')
安=
具有属性的CompilerConfiguration:
Name: 'Microsoft Visual C++ 2012 (C)'
Manufacturer: 'Microsoft'
Language: 'C'
Version: '11.0'
Location: 'D:\apps\visualstudio2012'
ShortName: 'MSVC110'
Priority: 'A'
Details: [1x1 mex.CompilerConfigurationDetails]
LinkerName: 'link'
LinkerVersion: ''
MexOpt: 'C:\Users\Ian\AppData\Roaming\MathWorks\MATLAB\R2014b\mex_C_win64.xml'Mex.getCompilerConfigurations(“Fortran”)
安=
具有属性的0x1 CompilerConfiguration数组:
Name
Manufacturer
Language
Version
Location
ShortName
Priority
Details
LinkerName
LinkerVersion
MexOpt发布于 2019-11-06 11:52:32
您需要为mingw编译器创建自己的mexopts安装xml文件。
在/bin/mexopts文件夹中,将有一个mingw64.xml文件。这是支持的混合gcc编译器的mexopts文件。在顶部的配置选项中,它说是Language="C"。
在定义编译器和链接器等命令时,文件的结构非常清楚。因此,您需要为FORTRAN编译和链接创建一个等效的文件,然后可以设置Language="FORTRAN"。
一旦您创建了mexopt文件,例如my_mingw_Fortran.xml,您就可以在MATLAB提示符下使用下面的命令告诉MATLAB将其用于FORTRAN
mex setup:my_mingw_Fortran.xml FORTRAN -v
对不起,我没有Windows上的混合/gcc示例,但是我使用这个过程来获得MATLAB,在Linux机器上使用Intel Fortran编译器。
发布于 2017-06-29 13:40:33
你可以试试Gnumex工具。它将默认的mex文件基础结构替换为Mingw编译器(实际上,您可以在gnumex和内置mex处理之间来回切换)。对我来说(Matlab2014b),它工作得很好,我也用它来编译Fortran代码。我只需要明确地链接到gfortran图书库。它需要TDM-GCC变体的明。
https://stackoverflow.com/questions/44826520
复制相似问题