Ответ 1
Эта ошибка означает, что OpenSSL либо не установлен, либо неправильно связан. Существует три решения этой проблемы.
Вариант 1: используйте панель инструментов Vapor (рекомендуется)
Установите последнюю версию панели инструментов Vapor.
Если вы уже установили панель инструментов, сначала попробуйте удалить ее:
which vapor
rm -rf /path/to/vapor
1.1 Установить (macOS)
Добавить паром Homebrew Tap
brew tap vapor/homebrew-tap
Обновите Homebrew и установите панель инструментов.
brew update
brew install vapor
1.2 Установить (Ubuntu)
Добавьте репозиторий APP APP.
Быстрый Script
eval "$(curl -sL https://apt.vapor.sh)"
Руководство
wget -q https://repo.vapor.codes/apt/keyring.gpg -O- | sudo apt-key add -
echo "deb https://repo.vapor.codes/apt $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/vapor.list
Установка
sudo apt-get update
sudo apt-get install vapor
1.3 Готово
Теперь у вас должен быть доступ к программе vapor
, и все необходимые зависимости должны быть установлены.
vapor build
vapor xcode
swift build
и соответствующие команды теперь также будут работать нормально.
swift build
swift package generate-xcodeproj
Вариант 2: установите пакет Vapor CTLS
2.1 Установить (macOS)
Добавить паром Homebrew Tap
brew tap vapor/homebrew-tap
Обновить Homebrew и установить CTLS
brew update
brew install ctls
Перезагрузите терминал, заново создайте проект Xcode (если используете Xcode) и повторите попытку.
2.2 Установить (Ubuntu)
Добавьте репозиторий APP APP.
Быстрый Script
eval "$(curl -sL https://apt.vapor.sh)"
Руководство
wget -q https://repo.vapor.codes/apt/keyring.gpg -O- | sudo apt-key add -
echo "deb https://repo.vapor.codes/apt $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/vapor.list
Обновить APT и установить CTLS.
sudo apt-get update
sudo apt-get install ctls
2.3 Выполнено
swift build
и другие команды теперь должны работать нормально.
Вариант 3. Ручная установка и соединение OpenSSL или эквивалентного
3.1 Установка (macOS)
Установите OpenSSL (или любую другую подобную библиотеку SSL)
brew install openssl
brew install libressl
3.2 Установить (Ubuntu)
Установите OpenSSL (или любую другую подобную библиотеку SSL)
sudo apt-get install libssl-dev
3.3 Поиск флагов компоновщика
Вы можете использовать pkg-config
(доступно на brew и apt), чтобы найти флаги компоновщика или большинство пакетов.
pkg-config <package-name> --cflags
pkg-config <package-name> --libs
Однако OpenSSL, установленный через Homebrew не может быть связан и, таким образом, не работает с pkg-config
. Эти флаги должны работать:
include: /usr/local/opt/openssl/include
libs: /usr/local/opt/openssl/lib
Примечание. Некоторые библиотеки будут установлены в /usr/include
и /usr/lib
, которые не требуют явных флагов компоновщика. OpenSSL через APT устанавливается таким образом.
3.4 Использование флагов компоновщика
Флаги компоновщика можно добавить во время swift build
swift build -Xswiftc -I/path/to/include -Xlinker -L/path/to/lib
Они также могут быть добавлены во время генерации проекта Xcode.
swift package -Xswiftc -I/path/to/include -Xlinker -L/path/to/lib generate-xcodeproj