Linux でコンパイルしたアプリケーションを実行した時に’Floating point exception’というエラーが出るのはなぜですか?
조회 수: 4 (최근 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!