linux - 如何删除openssl库依赖

标签 linux openssl dependencies

当我尝试在其他新机器上执行 Linux 可执行文件 时,我的程序因 OpenSSL 的依赖性而出现错误。

为了顺利运行我的程序,需要预加载 libssl.solibcrypto.so

如何在 Linux 上使用 make 文件或任何其他解决方案删除此依赖性

最佳答案

您似乎将可执行文件与 OpenSSL 库动态链接。所以你的可执行文件需要 libcrypto.so 和 libssl.so。您有两种方法:

  1. OpenSSL 在 Linux 环境中分布相当广泛,并且很可能预安装在您运行可执行文件的 Linux 上。所以问题可能出在所需的库版本上 - 您的可执行文件可能是用例如OpenSSL 1.0.1,Linus 有 0.9.8。或者问题可能出在库的路径上。在 RadHat 中,OpenSSL 库默认位于/lib64 中。因此,您需要使用与您运行的 Linux 上相同或兼容的 OpenSSL 版本来构建应用程序,或者通过设置 LD_LIBRARY_PATH 来提供正确的路径
  2. 您可以将可执行文件静态链接到 OpenSSL 库:

    gcc -lsome_dynamic_lib code.c libcrypto.a libssl.a

关于linux - 如何删除openssl库依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38474356/

相关文章:

c - 当我使用 Gotoxy(x,y) 时,为什么第一列没有打印

c++ - 掩码设置为 0 时不生成核心文件

sockets - 在 ubuntu 的 openssl 套接字编程中未定义对 err_exit 、berr_exit..etc 的引用

c++ - 有没有办法获取我发送给 C++ 中的对等方的 OpenSSL X509 证书名称?

android - 如何指定具有多个模块的库(sdk)中的依赖关系

linux - 在 Alpine docker 中安装软件包

java - 如何以最低要求运行 Spring Boot 应用程序?

Linux PCIe 驱动程序 : What to use for private data structure?

c# - RabbitMq Broker 不接受 PFX

linux - Linux 发行版上的 windeployqt.exe