Соберите curl с openssl

Вопрос или проблема

Я пытаюсь скомпилировать curl с поддержкой openssl, и хотя я пробовал на протяжении нескольких часов, я все еще не могу понять, что я делаю не так.
Вот что я сделал:

  1. скомпилировать openssl вот так:
    cd /usr/local/install/openssl-1.0.2a
    ./config
    make
    make install

  2. попробовать скомпилировать curl

    cd /usr/local/install/curl-7.42.1
    ./configure –with-ssl=/usr/local/ssl/
    make

и я получаю эту ошибку:

/usr/bin/ld: /usr/local/ssl/lib/libssl.a(s2_clnt.o): relocation R_X86_64_32 against '.rodata' cannot be used when making a shared object; recompile with -fPIC
/usr/local/ssl/lib/libssl.a: could not read symbols: Bad value

collect2: error: ld returned 1 exit status

Я наконец нашел способ скомпилировать curl, вот что сработало для меня:
openssl:

./config -fPIC no-gost no-shared no-zlib
make depend
make
make install 

curl:

./configure  --with-ssl=/usr/local/ssl
make 
make install  

Ответ или решение

Компиляция cURL с поддержкой OpenSSL

Команда curl является мощным инструментом для работы с URL, и его поддержка OpenSSL позволяет обеспечить безопасные HTTPS-соединения. В этом руководстве мы рассмотрим шаги, необходимые для успешной компиляции curl с поддержкой OpenSSL, а также решим возникшие проблемы.

Шаг 1: Компиляция OpenSSL

Перед тем как начать, убедитесь, что у вас установлены все необходимые зависимости, такие как инструменты для сборки (make, gcc, и др.). После этого выполните следующие команды для сборки OpenSSL:

cd /usr/local/install/openssl-1.0.2a
./config -fPIC no-gost no-shared no-zlib
make depend
make
make install

Обратите внимание на следующие моменты:

  • Флаг -fPIC позволяет компилятору генерировать код с поддержкой позиционной независимости, что критично для создания разделяемых библиотек.
  • Параметры no-shared и no-zlib исключают создание динамической библиотеки и поддержку zlib, соответственно, если они вам не нужны.

Шаг 2: Компиляция cURL

Теперь, когда OpenSSL успешно собран, перейдите к компиляции curl:

cd /usr/local/install/curl-7.42.1
./configure --with-ssl=/usr/local/ssl
make
make install
  • Параметр --with-ssl указывает путь к установленной библиотеке OpenSSL.

Возможные проблемы и их решения

Если вы столкнулись с ошибкой вида:

/usr/bin/ld: /usr/local/ssl/lib/libssl.a(s2_clnt.o): relocation R_X86_64_32 against '.rodata' can not be used when making a shared object; recompile with -fPIC
/usr/local/ssl/lib/libssl.a: could not read symbols: Bad value

Это указывает на то, что статическая библиотека OpenSSL была скомпилирована без поддержки позиции независимых кодов (PIC). В этом случае вам необходимо повторить процесс сборки OpenSSL с флагом -fPIC.

Заключение

Следуя представленным шагам, вы сможете успешно сконфигурировать и скомпилировать curl с поддержкой OpenSSL. Если у вас все еще возникают сложности, убедитесь, что все пути указаны правильно и что вы использовали необходимые параметры конфигурации при сборке OpenSSL. Компиляция с правильными флагами и настройками — ключ к успешному завершению задачи.

Такой подход гарантирует, что ваш курс на внедрение безопасных решений будет успешно выполнен, а также позволит вам лучше контролировать процесс сборки и настройки программного обеспечения.

Оцените материал
Добавить комментарий

Капча загружается...