Linux でコンパイルしたアプリケーションを実行した時に’Floating point exception’というエラーが出るのはなぜですか?
2 ビュー (過去 30 日間)
古いコメントを表示
MathWorks Support Team
2012 年 10 月 2 日
編集済み: MathWorks Support Team
2023 年 1 月 5 日
カーネル 2.6.20-1.3002.fc6xen の Fedra Core 6 でアプリケーションの開発をしており、配布先ではカーネル 2.6.11-1.1369_FC4smp の Fedra Core 4 を使用しています。以下のようなコマンドでアプリケーションを実行しています。
./run_myprog_compiled.sh MCR_TEST2/v77/
------------------------------------------
Setting up environment variables
---
Found MCR Java JRE version: 1.6.0
LD_LIBRARY_PATH is .:MCR_TEST2/v77//runtime/glnxa64:MCR_TEST2/v77//bin/glnxa64:MCR_TEST2/v77//sys/os/glnxa64:MCR_TEST2/v77//sys/java/jre/glnxa64/jre1.6.0/lib/amd64/native_threads:MCR_TEST2/v77//sys/java/jre/glnxa64/jre1.6.0/lib/amd64/server:MCR_TEST2/v77//sys/java/jre/glnxa64/jre1.6.0/lib/amd64/client:MCR_TEST2/v77//sys/java/jre/glnxa64/jre1.6.0/lib/amd64
その際に、以下のようなエラーが出ます。
ERROR: ./run_myprog_compiled.sh: line 40: 26292 Floating point exception./avg_tc_compiled $*
採用された回答
MathWorks Support Team
2023 年 1 月 1 日
編集済み: MathWorks Support Team
2023 年 1 月 5 日
上記のマシンは別のバージョンの GLIBC ライブラリを使用しています。実行用のテストマシンは、開発と同じ、もしくは互換性のある GLIBC ライブラリをインストールしておく必要があります。また、開発マシンでは、以下のサポートされているバージョンの GLIBC を使用する必要があります。
・System Requirements - Release 2012a
現在の GLIBC のバージョンを確認する方法は、下記関連ソリューションに載っています。
この浮動小数点の例外 ("floating point exception") というエラーは動的リンクのためのシンボルを提供する ELF ハッシュセクションの違いからきていると考えられます。
エラーを回避するには、配布先のマシンに互換性のある glibc を使用、もしくは開発マシンで古いバージョンの glibc を使用してください。
また、他の回避策として、mbuildopts.sh を変更する方法があります。これは The MathWorks ではテストされておらず、推奨される手順ではありませんので、あらかじめご了承ください。
具体的には、mbuildopts.sh の46行目を
RPATH="-Wl,-rpath-link,$TMW_ROOT/bin/$Arch,--hash-style=sysv"
で置き換えてください。設定ディレクトリはMATLAB のコマンドウィンドウで
>> prefdir
と入力することで出力されます。
0 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で スタンドアロン アプリケーション についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!