Linux でコンパイルしたアプ​リケーションを実行し​た時に’Floati​ng point exception’​というエラーが出るの​はなぜですか?

2 views (last 30 days)
カーネル 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 $*

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 1 Jan 2023
Edited: MathWorks Support Team on 5 Jan 2023
上記のマシンは別のバージョンの 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
と入力することで出力されます。

More Answers (0)

Categories

Find more on スタンドアロン アプリケーション in Help Center and File Exchange

Products


Release

R2007b

Community Treasure Hunt

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

Start Hunting!