0

物理的な問題を解決するために ccx (Calculix solver programm) をインストールしました。プリプロセッサ cgx は正常に動作しますが、ターミナルで .inp ファイル (abaqus) を使用して ccx を実行すると、エラーが発生します。

ccx: symbol lookup error: ccx: undefined symbol: _gfortran_internal_malloc

フラグまたは .inp ファイルなしで ccx のみを実行すると、結果は次のようになります。

Usage: CalculiX.exe -i jobname

ubuntu 14.04 コンピューター (64 ビット: x86_64) に libgfortran3 をインストールし、「/usr/lib/x86_64/」にある「libgfortran.so.3.0.0」ファイルを、作成された参照オブジェクト ファイル「libgfortran.so.2」にリンクします。 " (アプリケーションが 32 ビットで実行されるため、calculix はそのファイルを必要とします)。その参照ファイルがないと ccx は完全には機能しないため、リンクする必要がありました。Calculix 2.8p2 を使用しています。

4

1 に答える 1

0

アプリケーションが 32 ビットの場合、動作させるには 32 ビット ライブラリが必要です。あなたが行ったことは、64ビットライブラリをインストールしてから、32ビットライブラリがあるべき場所にそれらをシンボリックリンクすることです。これは、ライブラリが「存在する」ことを満たしていますが、32 ビット プログラムでは使用できません。

私のライブラリの場所はあなたのものとは異なりますが、それらが異なることに注意してください。

  • 64 ビット libgfortran.so

    $ file /usr/lib64/gcc/x86_64-pc-linux-gnu/5.2.0/libgfortran.so.3.0.0 
    /usr/lib64/gcc/x86_64-pc-linux-gnu/5.2.0/libgfortran.so.3.0.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, stripped
    
  • 32 ビット libgfortran.so

    $ file /usr/lib64/gcc/x86_64-pc-linux-gnu/5.2.0/32/libgfortran.so.3.0.0 
    /usr/lib64/gcc/x86_64-pc-linux-gnu/5.2.0/32/libgfortran.so.3.0.0: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped
    

次に、プログラムで が必要な場合libgfortran.so.2、代わりに のバージョンをシンボリック リンクしても機能libfortran.so.3しません。ライブラリのバージョン番号の変更は、互換性がなく、互換性がないことを示す良いシグナルです。i386 アーキテクチャ用の古いライブラリを提供するパッケージを見つける必要があります。これは、古いバージョンの ubuntu からパッケージをインストールすることを意味する場合があります。

于 2015-10-21T19:46:30.557 に答える