我用gcc
使用openssl加密库编译了我的程序。
我将可执行文件移动到另一个系统,安装openssl后尝试运行它。我收到以下错误:
error while loading shared libraries: libcrypto.so.1.0.0: cannot open shared object file: No such file or directory
我从以下的库中了解到存在的库,但有另一个名称:
locate libcrypto
/usr/lib64/.libcrypto.so.1.0.2f.hmac
/usr/lib64/.libcrypto.so.10.hmac
/usr/lib64/libcrypto.so
/usr/lib64/libcrypto.so.1.0.2f
/usr/lib64/libcrypto.so.10
/usr/lib64/pkgconfig/libcrypto.pc
我可以告诉二进制文件使用现有的库吗?或者有没有办法安装所需的那个?
汇编是在Ubuntu 15.10 64位上完成的,试图在Fedora 4.2.3-300.fc23.x86_64上运行。
答案 0 :(得分:1)
我可以以某种方式告诉二进制文件使用现有的库吗?
不,你不能:原因这些库有不同的名称:它们不是ABI兼容的。如果你设法以某种方式告诉二进制文件使用另一个库,如果你运气好,结果将是崩溃,如果你不幸,结果将是一个无声的腐败。
(顺便说一下,你可以通过创建符号链接ln -s libcrypto.so.1.0.2f libcrypto.so.1.0.0
来尝试这一点,但是你已经警告不这样做了)。
有没有办法安装所需的?
当然:你应该可以将libcrypto.so.1.0.0
从Ubuntu机器复制到Fedora,假设你找不到提供它的Fedora软件包。