Linux でコンパイルしたアプリケーションを実行した時に’Floating point exception’というエラーが出るのはなぜですか?
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
MathWorks Support Team
il 2 Ott 2012
Modificato: MathWorks Support Team
il 5 Gen 2023
カーネル 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 $*
Risposta accettata
MathWorks Support Team
il 1 Gen 2023
Modificato: MathWorks Support Team
il 5 Gen 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
と入力することで出力されます。
0 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su スタンドアロン アプリケーション in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!