Simulink モデルをビルドしたり、アップデートしたりするとエラーとなるのはなぜですか?
11 ビュー (過去 30 日間)
古いコメントを表示
MathWorks Support Team
2015 年 9 月 2 日
回答済み: MathWorks Support Team
2015 年 9 月 2 日
Simulink モデルをアップデートしたり、ビルドを行おうとすると、MATLAB 環境がインストールされたコンパイラを見つけられないというエラーとなります。
実際には
mex -setup
にて、すでにコンパイラの選択は行っています。このときはエラーなどは出ずに、正常に選択されているようでした。
その後、モデルのアップデートを実行すると、以下のようなエラーとなります。
Unable to locate a C-compiler required by Stateflow and MATLAB Function blocks.
Use 'mex -setup' to select a supported C-compiler.
また、以下を実行すると、
mex.getCompilerConfigurations
モデルエラーとなります。
ERROR: ** Error **
または、モデルのビルドを行おうとすると、以下のようなエラーとなります。
ERROR: Error using mex.CompilerConfigurationFactory/determineLocation (line 271)
および
ERROR: Unable to find an installed compiler. Perl file erred finding compiler location with following message: Perl lib version (5.8.8) doesn’t match executable version (v5.8.9) at C:\Apps\Perl\5.8.8\lib\/Config.pm line 46. Compilation failed in require at C:\Apps\Perl\5.8.8\lib\/DynaLoader.pm line 25. BEGIN failed—compilation aborted at C:\Apps\Perl\5.8.8\lib\/DynaLoader.pm line 25. [...] Error in mex.getCompilerConfigurations (line 56) compConfig = process(ccF); [snip]
採用された回答
MathWorks Support Team
2015 年 9 月 2 日
この問題は複数バージョンの Perl がインストールされ、それぞれに対しての環境変数も設定されていることが原因です。
MATLAB はそれ自身で Perl を持っています。しかし、ほかのツール(たとえば CANoe など)により複数の異なるバージョンの Perl がインストールされている場合には、このような環境になることがあります。
回避方法としては、一つは Perl の削除があります。MATLABはそれ自身の Perl を持っているため、その他の Perl は必要としないためです。
この方法が適切ではない場合の方法は、以下の手順で原因となる Perl を見つけることです。
注意:
- 複数人でコンピュータを共有している場合や、システム全体を把握していない場合は、 Path の設定は変更しません。
- 管理者権限が必要です。
1) システムの環境変数 PATH から、Perl のインストールフォルダのパスを削除します。環境変数 PATH の内容は、MATLAB 上でも以下のコマンドにより確認することができます。
>> getenv('PATH')
Perl のインストールに関連するフォルダをチェックし、ある場合はそれらを削除します。または、環境変数 PATH の後方に配置して優先度を下げる方法でも構いません。
2) このほか、すべての環境変数を確認することもできます。これは、MATLAB 上にて以下のコマンドで可能です。
>> system('set')
またはコマンドプロンプト(DOS窓)では以下のコマンドで可能です。
> set
一般的には Perl がインストールされている場合、たとえば以下のような環境変数が存在している場合があります。これらの環境変数を削除します。
PERLLIB
PERL5LIB
PERL5OPT
PERL5SHELL
これらを削除するか、またはstartup.mで一時的に無効にすることができます。startup.m により PERL5LIB を無効化するためには、以下を記述します。
setenv('PERL5LIB','');
3) すべての Perl のバージョンは、MATLAB の「編集」メニュー内の「ファイル検索」でチェックすることができます。実際には、C: ドライブの下で 「*perl*」を検索します。
これにより、インストールされた Perl のバージョンは何種類か、などを調べることができます。もし、不要な Perl が見つかったときは、一時的にフォルダ名を変更することにより無効化することができます。
0 件のコメント
その他の回答 (0 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!