我已经通过 Steam 在 Fedora 26 上安装了 XCOM2,但它不起作用。我手动执行安装的二进制文件并收到错误:
./XCOM2: error while loading shared libraries: libcrypto.so.1.0.0: cannot open shared object file: No such file or directory
然后我尝试手动将系统(x64)版本连接到系统,~/.local/share/Steam/steamapps/common/XCOM 2/lib/x86_64
但随后它抱怨 ELF 类错误(看起来我的版本是针对 i686 的 32 位 lib?!)。
/lib
为什么我首先要使用 32 位版本的 libcrypto以及(更相关)如何让 XCOM2 工作?我对 Fedora 比较陌生,并尝试自己解决这个问题,但我不确定如何继续。首先十分感谢!
答案1
首先,一个
ldd ./XCOM2
将显示您的二进制文件想要链接哪些库。您将看到哪些库找不到。
您可以使用以下命令检查共享库的体系结构
file -szL /lib/libsomething.so.a.b.c
它会说它是 i386 还是 amd64 库。您的二进制文件也是如此XCOM2
。
架构应该匹配。尽管ldd
已经表明什么是存在的,什么是不存在的。
大多数发行版至少具有有限的多架构支持,这意味着您的系统可以同时拥有针对多种架构的库和二进制文件。
查找包含缺少的库的软件包(在基于 rpm 的发行版上,可以使用该scout
工具来完成,或者在基于 deb 的发行版上使用 来完成apt-file
)。安装它们(在 rpm 上,使用yum
,在 debian 上,apt-get
)。
如果给定的库在您的发行版上不存在,那么您必须从外部源获取它们。但是,由于单个二进制文件而操作系统库是没有用的。
大多数情况下,这些库存在于同一发行版的不同版本上(在 debian 上,您可以在http://packages.debian.org,对于其他发行版我不知道)。下载软件包,手动解压(在 rpm 上,命令为:rpm2cpio something.rpm|cpio -i -d
,在 debian 上:dpkg -x something.deb; tar -Jxvf data.tar.xz
),将所需的库文件复制到给定目录中。
为二进制文件添加前缀
LD_LIBRARY_PATH=/here/are/my/additional/libs ./XCOM2
您可以首先XCOM2
将此附加目录提供给共享库搜索路径。