無効なMEXファイルの改善方法について

14 views (last 30 days)
Hideaki Yamagata
Hideaki Yamagata on 22 Feb 2018
Answered: michio on 22 Feb 2018
下記のエラーが表示されます。 どのように改善すればよいかご教示ください。
無効な MEX ファイル 'c:\spm8\spm8\external\fieldtrip\fileio\private\ft_getopt.mexw64': 依存する共有ライブラリがありません: 'c:\spm8\spm8\external\fieldtrip\fileio\private\ft_getopt.mexw64' で必要とされる 'MSVCR80.dll'
'c:\spm8\spm8\external\fieldtrip\fileio\private\ft_getopt.mexw64' で必要とされる 'C:\Program Files\MATLAB\R2017a/bin/win64\libmx.dll' にシンボル 'mxErrMsgTxt' がありません。
エラー: ft_read_header (line 110) retry = ft_getopt(varargin, 'retry', false); % the default is not to retry reading the header

Accepted Answer

mizuki
mizuki on 22 Feb 2018
Edited: mizuki on 22 Feb 2018
エラーメッセージのとおり、必要とされているファイルがないことがこのエラーの原因になります。 不足しているファイルは MSVCR80.dll ということです。
MSVCR80.dll は Microsoft Visual C++ 2005 Redistributable の一部で、SPM8のコードはこれでコンパイルされているようです。コンパイルして作成された MEXW64 のファイルは MSVCR80.dll に依存しており、実行時にこの dll を参照しにいきます。現在実行されている環境には Microsoft Visual C++ 2005 Redistributable がないため、このエラーが出ていると考えられます。
問題の回避方法として、以下よりMicrosoft Visual C++ 2005 Redistributable (x64) をインストールしてみてください。

More Answers (1)

michio
michio on 22 Feb 2018
http://www.fil.ion.ucl.ac.uk/spm/software/spm8/ に下記の記載があります。直接の解決策ではありませんが、SMP8 は R2017a で使うことは想定されていない模様です。
SPM8 is designed to work from MATLAB versions 7.1 (R14SP3) to 8.5 (R2015a), and will not work with earlier versions.
SPM12 is designed to work with MATLAB versions 7.4 (R2007a) to 9.3 (R2017b), and will not work with earlier versions.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!