MEXコマンド実行時にerror LNK2019が発生してしまう.
Show older comments
S-functionを使用して既存のFortranサブルーチンをSimulinkに組み込もうとしているのですが,
mexコマンドで,fortranの.objファイルとCのゲートウェイ関数から.mexw64ファイルを作成する際に,以下のようなエラーが出てしまいます.
次を使用中のエラー: mex
ライブラリ sfun_bet.lib とオブジェクト sfun_bet.exp を作成中
sfun_bet_sub.obj : error LNK2019: 未解決の外部シンボル _gfortran_st_write が関数 clcdcm_ で参照されました
sfun_bet_sub.obj : error LNK2019: 未解決の外部シンボル _gfortran_transfer_character_write が関数 clcdcm_ で参照されました
sfun_bet_sub.obj : error LNK2019: 未解決の外部シンボル _gfortran_transfer_integer_write が関数 clcdcm_ で参照されました
sfun_bet_sub.obj : error LNK2019: 未解決の外部シンボル _gfortran_st_write_done が関数 clcdcm_ で参照されました
sfun_bet_sub.obj : error LNK2019: 未解決の外部シンボル _gfortran_transfer_real_write が関数 clcdcm_ で参照されました
sfun_bet_sub.obj : error LNK2019: 未解決の外部シンボル _gfortran_st_read が関数 clcdcm_ で参照されました
sfun_bet_sub.obj : error LNK2019: 未解決の外部シンボル _gfortran_st_read_done が関数 clcdcm_ で参照されました
sfun_bet_sub.obj : error LNK2019: 未解決の外部シンボル _gfortran_st_close が関数 bet_ で参照されました
sfun_bet_sub.obj : error LNK2019: 未解決の外部シンボル _gfortran_string_trim が関数 bet_ で参照されました
sfun_bet_sub.obj : error LNK2019: 未解決の外部シンボル _gfortran_concat_string が関数 bet_ で参照されました
sfun_bet_sub.obj : error LNK2019: 未解決の外部シンボル _gfortran_st_open が関数 bet_ で参照されました
sfun_bet_sub.obj : error LNK2019: 未解決の外部シンボル _gfortran_transfer_integer が関数 bet_ で参照されました
sfun_bet_sub.obj : error LNK2019: 未解決の外部シンボル _gfortran_transfer_real が関数 bet_ で参照されました
sfun_bet_sub.obj : error LNK2019: 未解決の外部シンボル _gfortran_string_len_trim が関数 bet_ で参照されました
sfun_bet_sub.obj : error LNK2019: 未解決の外部シンボル _gfortran_transfer_character が関数 bet_ で参照されました
sfun_bet_sub.obj : error LNK2019: 未解決の外部シンボル _gfortran_os_error が関数 bet_ で参照されました
sfun_bet_sub.obj : error LNK2019: 未解決の外部シンボル _gfortran_runtime_error が関数 bet_ で参照されました
sfun_bet.mexw64 : fatal error LNK1120: 17 件の未解決の外部参照
gfortranのライブラリをリンクすると解決できそうだということは分かったのですが,どのライブラリをリンクすればよいのか,
そもそもそのライブラリがどこにあるのかが分からず,途方に暮れています.
環境はWindows 11,MATLAB2024aで,使用しているコンパイラは,2024aに対応しているMinGW64 Compiler (FORTRAN)とMicrosoft Visual C++ 2022 (C)です.
どうか解決法をご教授いただけますと幸いです.よろしくお願いいたします.
Accepted Answer
More Answers (1)
covao
on 8 Jun 2024
1 vote
以下に参考情報があります。
mex コンパイラをMinGW64に設定し、FORTRANのソースコードがあれば、gfortranコンパイラをインストールして、ライブラリを生成し直してみる方法が考えられます。
関連情報
Categories
Find more on MATLAB Support for MinGW-w64 C/C++ Compiler in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!