MATLABからFortranコードを呼び出す必要があります。私はいくつかの調査を行い、mex
コマンドとそれをどのように使用するかについて読んだ。残念ながら私はすでにFortranコンパイラを動作させることに失敗しています。MATLAB mexがMacOSでコンパイラgfortranを探していません
まず第一に、ここに私の設定です:
- MacOSのシエラ10.12.1(最新版)
- MATLAB R2016b(最新版)
- 公式から.dmgファイルを介してインストールのgfortran 4.9.2( GNUサイト)
MATLABドキュメントによると、私は、FortranからMEXファイルを構築するためのmex
を準備するmex -setup FORTRAN
を使用することができます。しかし、冗長モードでコマンドを実行すると、以下の出力が得られますmex -setup -v FORTRAN
Verbose mode is on.
... Looking for compiler 'Intel Fortran Composer XE' ...
... Looking for environment variable 'IFORT_COMPILER16' ...No.
... Looking for environment variable 'IFORT_COMPILER15' ...No.
... Looking for environment variable 'IFORT_COMPILER14' ...No.
... Looking for environment variable 'IFORT_COMPILER13' ...No.
... Executing command 'which ifort' ...No.
Did not find installed compiler 'Intel Fortran Composer XE'.
Error using mex
No supported compiler or SDK was found. For options, visit
http://www.mathworks.com/support/compilers/R2016b/maci64.html.
link次のことを、1はMATLABは、Linux上でサポートGNU gfortran 4.9.x
をしていることがわかります。しかし、Macではインテルの商用コンパイラだけがサポート対象としてリストされています。それはmex
も同様に探しているようだ。
Macはgfortran
を使用してFortranコードをコンパイルすることができるので、MATLABで動作させることが可能だと思いました。また、私はたくさんのグーグル・グーグルで、this oneのような質問をMathWorksフォーラムで見つけました。これは、MATLABがgfortran
をMacでも使用できるはずであることを示唆しています。
これは私が奇妙だと思うことです、私のMATLABはgfortran
コンパイラを探していません。インテルのコンパイラを探して、見つからずに上記のエラーメッセージをスローするだけです。
私のgfortran
については、それは間違いなく4.9.2(Linuxでサポートされていると表示されています)、which gfortran
は/usr/local/bin
を返し、私はTerminal経由でプログラムをコンパイルすることができます。
ちなみに、mex -setup ANY
はCとC++のコンパイラを正常に表示しますが、Fortranは正常に表示されません。
MEX configured to use 'Xcode with Clang' for C language compilation.
Warning: The MATLAB C and Fortran API has changed to support MATLAB
variables with more than 2^32-1 elements. In the near future
you will be required to update your code to utilize the
new API. You can find more information about this at:
http://www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html.
MEX configured to use 'Xcode Clang++' for C++ language compilation.
Warning: The MATLAB C and Fortran API has changed to support MATLAB
variables with more than 2^32-1 elements. In the near future
you will be required to update your code to utilize the
new API. You can find more information about this at:
http://www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html.
To choose a different C compiler, select one from the following:
Xcode with Clang mex -setup:'/Users/Lennart/Library/Application Support/MathWorks/MATLAB/R2016b/mex_C_maci64.xml' C
Xcode Clang++ mex -setup:'/Users/Lennart/Library/Application Support/MathWorks/MATLAB/R2016b/mex_C++_maci64.xml'
最後の出力の最後に記載されているファイル.xml
も見ました。 Fortranと関連がないファイルはありませんでした。私は自分自身を正常に書くことができませんでした。私は...それが問題だかどうかさえわからない
だから、簡単に言えば、私の質問は:どのように私はMATLAB実際に探してもらうことができ、その後、もちろんmex
ファイルをコンパイルするためにそれを使用するために私のgfortran
コンパイラを見つけますか?
ありがとうございました!
リンクには正しい解決策が含まれている可能性がありますが、その答えについても何とか説明する必要があります。多くの人が実際にこのような答えを憎んで、それらを下降させます。たとえば、http://meta.stackoverflow.com/questions/265552/when-to-flag-an-answer-as-not-an-answerを参照してください。 –