【发布时间】:2017-06-29 13:29:05
【问题描述】:
我有一个扩展名为 .F 的文件,我想编译它以与我的 Matlab 代码一起使用。为此,我正在尝试使用 mex 工具。 "mex -setup FORTRAN -v" 返回。
mex -setup FORTRAN -v
详细模式已开启。
...正在寻找编译器“Intel Visual Fortran Composer XE 2011 with Microsoft SDK 7.1”...
...正在寻找环境变量“IFORT_COMPILER12”...否。
未找到已安装的编译器“Intel Visual Fortran Composer XE 2011 with Microsoft SDK 7.1”。
...正在寻找编译器“Intel Visual Fortran Composer XE 2011 with Microsoft Visual Studio 2008”...
...正在寻找环境变量“IFORT_COMPILER12”...否。
未找到已安装的编译器“Intel Visual Fortran Composer XE 2011 with Microsoft Visual Studio 2008”。
...正在寻找编译器“Intel Visual Fortran Composer XE 2011 with Microsoft Visual Studio 2010”...
...正在寻找环境变量“IFORT_COMPILER12”...否。
未找到已安装的编译器“Intel Visual Fortran Composer XE 2011 with Microsoft Visual Studio 2010”。
...正在寻找编译器“Intel Visual Fortran Composer XE 2013 with Microsoft Visual Studio 2008”...
...正在寻找环境变量“IFORT_COMPILER14”...否。
...正在寻找环境变量“IFORT_COMPILER13”...否。
未找到已安装的编译器“Intel Visual Fortran Composer XE 2013 with Microsoft Visual Studio 2008”。
...正在寻找编译器“带有 Microsoft Visual Studio 2010 的 Intel Visual Fortran Composer XE 2013”...
...正在寻找环境变量“IFORT_COMPILER14”...否。
...正在寻找环境变量“IFORT_COMPILER13”...否。
未找到已安装的编译器“Intel Visual Fortran Composer XE 2013 with Microsoft Visual Studio 2010”。
...正在寻找编译器“Intel Visual Fortran Composer XE 2013 with Microsoft Visual Studio 2012”...
...正在寻找环境变量“IFORT_COMPILER14”...否。
...正在寻找环境变量“IFORT_COMPILER13”...否。
未找到已安装的编译器“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')
ans =
带有属性的编译器配置:
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')
ans =
0x1 带有属性的 CompilerConfiguration 数组:
Name
Manufacturer
Language
Version
Location
ShortName
Priority
Details
LinkerName
LinkerVersion
MexOpt
【问题讨论】:
-
MATLAB 有一个特定的列表,列出了哪些编译器受支持。你有他们的名单吗?
-
我有一些 C++ 编译器,但没有 Fortran。我从 Fortran 列表中搜索了一些编译器,它们的价格似乎在 6-7 百美元左右,我还没准备好花这些钱做实验
-
请停止添加` ,学习如何格式化。
-
很遗憾,MATLAB 只支持一系列编译器。我非常怀疑你会让任何其他编译器工作。我的意思是,看看详细的输出,它只是在一个列表中搜索一个编译器,如果它不存在,就会出错。
-
好像是真的。我最终在我的 Mac 上安装了 Intel Visual Fortran Composer。如果您有“.edu”电子邮件,它有一个免费版本。以防万一有人需要它
标签: matlab fortran gfortran mex