ccx - calculix:当我想执行ccx时,为什么会出现错误?

时间:2015-10-21 16:58:46

标签: linux fortran ubuntu-14.04 gfortran abaqus

我已安装ccx(Calculix解算器程序)来解决物理问题。预处理器cgx工作正常,但是当我在终端中运行带有.inp文件(abaqus)的ccx时,会出现错误:

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

当我只运行没有flag或.inp文件的ccx时,结果是:

Usage: CalculiX.exe -i jobname

我在我的ubuntu 14.04计算机上安装了libgfortran3(64位:x86_64)并链接" libgfortran.so.3.0.0"文件在" / usr / lib / x86_64 /"使用创建的参考对象文件" libgfortran.so.2" (calculix需要该文件'因为应用程序在32位上运行)。如果没有该参考文件ccx不能完全工作,这就是为什么我必须链接它。我使用Calculix 2.8p2。

1 个答案:

答案 0 :(得分: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版本的.menu ul li符号链接将不起作用。库版本号的更改是一个很好的信号,它们不兼容且不可互换。您需要找到一个为i386架构提供旧库的软件包。这可能意味着从旧版本的ubuntu安装软件包。