如何删除openssl库依赖项

时间:2016-07-20 06:58:59

标签: linux openssl dependencies

当我尝试在其他新机器上执行public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); MultiDex.install(this); } } 时,我的程序会因org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 的依赖性而出错。

要顺利运行我的程序,需要预先加载Linux executableOpenSSL

如何使用make文件或libssl.so

上的任何其他解决方案删除此依赖项

1 个答案:

答案 0 :(得分:0)

您似乎已动态地将可执行文件与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