加载共享库时出错:libgfortran.so.1:错误的ELF类:ELF类32

加载共享库时出错:libgfortran.so.1:错误的ELF类:ELF类32,fortran,shared-libraries,32bit-64bit,gfortran,photogrammetry,Fortran,Shared Libraries,32bit 64bit,Gfortran,Photogrammetry,我试图使用这里的“运动结构”示例()。我在运行过程的第二部分遇到一些问题: 我从这里下载了PMVS2(基于补丁的多视图立体声软件)。 我已在/pmvs-2/program/main文件夹中打开终端并键入: ./pmvs2 myfolder/options.txt 其中options.txt文件是在流程的第一步中创建的。我犯了这个错误: ./pmvs2: error while loading shared libraries: libgfortran.so.1: wrong ELF class

我试图使用这里的“运动结构”示例()。我在运行过程的第二部分遇到一些问题: 我从这里下载了PMVS2(基于补丁的多视图立体声软件)。 我已在/pmvs-2/program/main文件夹中打开终端并键入:

./pmvs2 myfolder/options.txt
其中options.txt文件是在流程的第一步中创建的。我犯了这个错误:

./pmvs2: error while loading shared libraries: libgfortran.so.1: wrong ELF
class: ELFCLASS32
我发现问题是因为我运行的是64位版本的程序,而gfortran库编译为32位。 我在/usr/lib32/文件夹中有一个名为libgfortran.so.3的文件,我创建了一个虚拟链接,其中包含:

ln -s /usr/lib32/libgfortran.so.3 /usr/lib32/libgfortran.so.1

我不知道我现在要做什么。

看起来这个软件是封闭源代码的,以二进制的形式分发。不太好。它还依赖于RedHat Linux 4.1中的许多共享库。这很糟糕,也很不专业。RedHat 4.1和现代Ubuntu不兼容二进制文件

要让它发挥作用并不容易。您必须安装文档中的所有这些库,并且必须将它们安装在此处提到的版本中

您真的不能只使用libgfortran 3而不使用所需的libgfortran 1。它们不兼容。ABI在这两个版本之间更改了两次。如果您确实设法使用版本3运行该程序,它可能会崩溃。您需要的正是文档中链接的那些版本。祝你安装好所有这些


文档中还提到了包中的一些源代码。然而,我担心它们只是一些示例程序。如果它们实际上是整个PMVS2库的源代码,那么最好自己编译并忘记二进制文件。

从版本1到版本3的这种符号链接不会有任何好处。这些库有不同的版本号是有充分理由的。它们不兼容。它不会真正改变32/64位问题中的任何东西。您是否尝试安装64位gfortran?若否,原因为何?这是一件显而易见的事情。还有,为什么要贴标签?为什么不标记呢?我搜索了64位版本,当然,我没有发现任何有用的东西。我是新来的,谢谢你的回答。问题是我找不到一个简单的安装方法(也不是一个困难的方法)。这个gfortran图书馆快把我逼疯了。我对其他库没有什么问题,但我已经安装了它们,一切都很好。这个库不一样。您必须自己从源代码编译gfortran。这是一个非常古老的版本。可能是4.1版。没有别的办法。没有现有的二进制文件。你必须自己从源代码处编译。我会试试,我会让你知道的。你能链接一些有用的网站吗?谢谢我发现了错误。这不是关于libgfortran的,而是我正在使用的文件的二进制版本!他们说二进制版本是在32位机器上编译的。pmvs2应该兼容,但不兼容。