Как направить вывод сборки для OpenSSL на OS X

#macos #makefile #openssl

#macos #makefile #openssl

Вопрос:

Я создаю OpenSSL в OS X. Я хотел бы направить встроенные библиотеки ( libcrypto.a , libssl.a etc) в каталог по моему выбору. В настоящее время они помещаются в текущий рабочий каталог.

Как мне этого добиться?

Это то, что я делаю. Я думал, что указание каталога для openssldir опции может сделать это, но это не так.

 ./Configure darwin64-x86_64-cc --openssldir=my-dir
make
  

Комментарии:

1. Я думаю, вы захотите использовать эту --prefix опцию в дополнение к --openssldir . Для моих локальных сборок OpenSSL на OSX я использую: CC=gcc ./Configure darwin64-x64_64-cc --prefix=/path/to/my/dir --openssldir=/path/to/my/dir . Обратите внимание, что CC=gcc переменная среды полезна для make depend шага, который может потребоваться для новых сборок OpenSSL.

Ответ №1:

Я хотел бы направить встроенные библиотеки (libcrypto.a, libssl.a и т. Д.) В каталог по моему выбору. В настоящее время они помещаются в текущий рабочий каталог.

OpenSSL 1.1.0 может создавать как в дереве, так и вне дерева. OpenSSL 1.0.2 строит в дереве. В обоих случаях все артефакты находятся в корневом каталоге OpenSSL. Он эффективно жестко запрограммирован в сценариях (их два или три, которые взаимодействуют).

Вы помещаете их в каталог по вашему выбору, выполнив сборку с помощью a make install . Если вас интересуют только библиотеки (libcrypto.a, libssl.a), то вручную cp .

При необходимости вы можете найти артефакты с помощью:

 find . -name 'libssl*'
find . -name 'libcrypto*'
find . -name '*.o'
  

Также есть некоторые правила о том, когда использовать --prefix=XXX и когда использовать --openssldir=XXX . Это зависит как от номера версии OpenSSL, так и от рецепта make, например make install или make install_sw . Подробности см. в разделе Компиляция и установка в OpenSSL wiki.

Комментарии:

1. find . -name './libssl*' ничего не перечисляет. Однако find . -name 'libssl*' списки ./libssl.a и ./libssl.pc . То же самое для libcrypto .

2. @ksl — Мой плохой… Я не уверен, почему я их туда поместил. Я часто запускаю эти команды и знаю лучше…

Ответ №2:

Если вам нужно перенаправить вывод OpenSSL в ваш конкретный каталог, вам необходимо выполнить сценарий configure следующим образом:

 $ ./configure darwin64-x86_64-cc --prefix=/Users/username/mydir --openssldir=/Users/username/mydir/ssl
  

где «имя пользователя» — это ваше имя пользователя. В этом примере вывод будет выполнен в каталог «~ / mydir». Здесь:

 --prefix option sets the output directory
--openssldir option sets the ssl settings directory