Linux でコンパイルしたアプリケーションを実行した時に’Floating point exception’というエラーが出るのはなぜですか?
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
MathWorks Support Team
le 2 Oct 2012
Modifié(e) : MathWorks Support Team
le 5 Jan 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 $*
Réponse acceptée
MathWorks Support Team
le 1 Jan 2023
Modifié(e) : MathWorks Support Team
le 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
と入力することで出力されます。
0 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur スタンドアロン アプリケーション dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!