Как использовать OpenSSL в GCC?

Я пытаюсь использовать openssl в программе gcc, но он не работает.

g++ server.cpp /usr/lib/libssl.a -o server 

дает сообщение об ошибке, как и все с опцией -l . Что я должен ввести в командной строке для связи с openssl? Файл /usr/lib/libssl.a существует, но, тем не менее, я все еще получаю ошибку компоновщика, no such function MD5() exists .

Не зная точных ошибок, которые вы видите, трудно обеспечить точное решение. Вот моя лучшая попытка.

Из предоставленной вами информации звучит так, как будто компоновщик терпит неудачу, потому что он не может найти ссылку на функцию md5 в libssl.a. Я считаю, что эта функция действительно находится в libcrypto, поэтому вам может понадобиться указать эту библиотеку.

g++ server.cpp -L/usr/lib -lssl -lcrypto -o server

Вы или другие пользователи могут найти эту статью в статье developerWorks :

В нем описывается большинство вещей, которые вам нужно знать, чтобы сфокусироваться на OpenSSL и C / C ++. Если вы обнаружите, что выполняете большинство шагов, это может помочь вам понять, что нужно делать.

Удачи.

В Eclipse IDE выберите Свойство Project -> c / c ++ Build -> Настройки gcc c linker (из настроек инструмента) -> добавить в путь поиска библиотеки (-L)

/ usr / lib -lssl -lcrypto

В дополнение к принятым ответам я не смог составить компиляцию примера OpenSSL для AES-CCM:

https://github.com/openssl/openssl/blob/master/demos/evp/aesccm.c

Чтобы он работал, мне нужно было добавить еще две вещи:

  • Библиотека динамической связи: -ldl
  • Библиотека PThread для использования поддержки streamов POSIX: -pthread (добавление непосредственно библиотеки с помощью -lpthread не рекомендуется )
  • Ошибки компоновщика при компиляции против glib ...?
  • Используйте как статические, так и динамически связанные библиотеки в gcc
  • Могу ли я смешивать статические и общедоступные библиотеки при связывании?
  • Что означает «статически связанное» и «динамически связанное»?
  • Что такое Microsoft Visual Studio, эквивалентная опции GCC ld - whall-archive
  • Передача gcc непосредственно для связывания библиотеки статически
  • Определение переменной в файлах заголовков
  • Как удалить пакет из Laravel с помощью композитора?
  • Давайте будем гением компьютера.