MATLAB2015aでMinGWのgfortranを使いたいのですがうまくいきません. CとC++は正常にビルドできるのですが, FORTRANについてはエラーが出ます.どうすればいいでしょうか?
6 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
MATLAB2015aでMinGWのgfortranを使いたいのですがうまくいきません. CとC++は正常にビルドできるのですが, FORTRANについてはエラーが出ます.
MinGWのビルドに関する設定を施しているオプションファイルは添付してあります.
ビルドするファイルは
で示されている「timestwo.F」です. 以下の手順でビルドしました.
(FORTRANのコンパイラの設定, testuserはユーザ名)
>> mex -setup:C:\Users\testuser\AppData\Roaming\MathWorks\MATLAB\R2015a\mex_FORTRAN_mingw-w64.xml FORTRAN
(mexファイルのビルド)
>> mex timestwo.F -largeArrayDims -v
エラー内容は以下のとおりです.
エラー: mex
C:\Users\testuser\AppData\Local\Temp\mex_370349256447315_4688\timestwo.obj:timestwo.F:(.text+0x41): undefined reference to `mexerrmsgidandtxt_'
C:\Users\testuser\AppData\Local\Temp\mex_370349256447315_4688\timestwo.obj:timestwo.F:(.text+0x49): undefined reference to `mxisnumeric_'
C:\Users\testuser\AppData\Local\Temp\mex_370349256447315_4688\timestwo.obj:timestwo.F:(.text+0x6c): undefined reference to `mexerrmsgidandtxt_'
C:\Users\testuser\AppData\Local\Temp\mex_370349256447315_4688\timestwo.obj:timestwo.F:(.text+0x74): undefined reference to `mxgetm730_'
C:\Users\testuser\AppData\Local\Temp\mex_370349256447315_4688\timestwo.obj:timestwo.F:(.text+0x80): undefined reference to `mxgetn730_'
C:\Users\testuser\AppData\Local\Temp\mex_370349256447315_4688\timestwo.obj:timestwo.F:(.text+0x9a): undefined reference to `mxgetpr_'
C:\Users\testuser\AppData\Local\Temp\mex_370349256447315_4688\timestwo.obj:timestwo.F:(.text+0xb0): undefined reference to `mxcopyptrtoreal8730_'
C:\Users\testuser\AppData\Local\Temp\mex_370349256447315_4688\timestwo.obj:timestwo.F:(.text+0xc6): undefined reference to `mxcreatedoublematrix730_'
C:\Users\testuser\AppData\Local\Temp\mex_370349256447315_4688\timestwo.obj:timestwo.F:(.text+0xd0): undefined reference to `mxgetpr_'
C:\Users\testuser\AppData\Local\Temp\mex_370349256447315_4688\timestwo.obj:timestwo.F:(.text+0xf6): undefined reference to `mxcopyreal8toptr730_'
C:\Users\testuser\AppData\Local\Temp\mex_370349256447315_4688\timestwo.obj:timestwo.F:(.text+0x126): undefined reference to `mexerrmsgidandtxt_'
collect2.exe: error: ld returned 1 exit status
冒頭でも書きましたが, FORTRANのみうまくビルドされません. 関数を見つけられないエラーだということはもちろんわかっています. しかしながら, これらの関数が含まれているライブラリはリンクオプションで設定しています. また, アンダースコアの問題と考え, コンパイラのオプションに -fno-underscoring を付け足しましたが, 同じようなエラーが出ます.
できるかぎりネットで調べましたが, どうしても答えを見つけられそうにありません... よろしければ, この問題についてヒントだけでも教えてもらえないでしょうか.
0 Kommentare
Antworten (1)
Norihiro Kobayashi
am 4 Jan. 2017
Bearbeitet: Norihiro Kobayashi
am 4 Jan. 2017
しばらく経過してしまったようですが、以下のチェックをもしよろしければご検討下さい。
すでにアンダースコアのオプションも検討されていたようですが、no underscoreのオプションがどのように働いているのかが若干気になります。
(通常FortranではCとことなり、アンダースコアが二つつくということはドキュメントのどこかで確認したことがありますが。直接的な原因かどうかは私も理解しておりません)
VisualStudioをお持ちでしたら、コンパイル後のオブジェクトファイルに対してdumpbinを使って解析を試みることも有効かも知れません。
以上ご参考になれば幸いです。
0 Kommentare
Siehe auch
Kategorien
Mehr zu MATLAB Support for MinGW-w64 C/C++ Compiler finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!