2016-07-20 3 views
-1

Когда я пытаюсь выполнить Linux executable на другой новой машине, моя программа дает ошибку для зависимости от OpenSSL.Как удалить зависимости библиотеки openssl

Для нормальной работы моей программы требуется libssl.so и libcrypto.so предустановленная.

Как я могу удалить эту зависимость с помощью сделать файл или любое другое решение на Linux

+0

Его решение зависит от ваших потребностей. Вы можете использовать [NSS] (http://nss-crypto.org/), [GnuTLS] (http://www.gnutls.org/) или другую библиотеку безопасности, которая вам подходит. – jww

+0

Я просто хочу прикрепить эти зависимости к make-файлу. –

ответ

0

кажется, что вы связали свой исполняемый файл с библиотеками OpenSSL динамически. Таким образом, вашему исполняемому файлу нужны libcrypto.so и libssl.so. У вас есть два способа:

  1. OpenSSL довольно широко распространен в среде Linux и, скорее всего, предварительно установлен на Linux, на котором выполняется ваш исполняемый файл. Таким образом, проблема может быть в требуемой версии библиотек - ваш исполняемый файл может быть скомпилирован, например. OpenSSL 1.0.1 и Linus - 0.9.8. Или проблема может быть связана с путями библиотек. В библиотеках RadHat OpenSSL по умолчанию находятся/lib64. Так что вам нужно либо создавать приложения с той же или совместимой версией OpenSSL в настоящее время на Linux, где вы бежите или обеспечить правильный путь, установив LD_LIBRARY_PATH
  2. Вы можете связать свой исполняемый файл статического с OpenSSL библиотекой:

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

+0

, так что могу ли я просто использовать эту строку в файле make, и если я не ошибаюсь, вы говорите, что после выполнения второго варианта мне не понадобятся эти два файла для запуска моего объектного файла на других машинах. –

+0

Да, если вы идете на второй вариант и сделать статическую ссылку с библиотеками OpenSSL, вы не будете зависеть от файлов OpenSSL .so. – Oleg

+0

, когда я прикрепляю эти файлы lib в make-файле. когда я пытаюсь скомпилировать код, он пытается сделать все остальные динамические как статические. не могли бы вы рассказать мне путь библиотек libgcc –

Смежные вопросы