#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