3

我正在尝试使用此处的 Structure From Motion 示例(Nghiaho 的 SFM)。我在运行过程的第二部分遇到了一些问题:我从这里pmvs2 doc下载了 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

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

4

1 回答 1

1

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

让它发挥作用并不容易。您必须在文档http://www.di.ens.fr/pmvs/documentation.html中安装所有这些库,并且必须在其中提到的那些版本中安装它们。

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

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

于 2017-11-05T14:31:03.643 回答