vapor 2的openssl/ctls故障

vapor 2的openssl/ctls故障,ssl,openssl,vapor,Ssl,Openssl,Vapor,如何解决Vapor 2带来的这些OpenSSL/TLS问题?它们阻止我在命令行和Xcode中编译项目 在SPM构建期间: note: you may be able to install ctls using your system-packager: brew install ctls note: you may be able to install ctls using your system-packager: brew install openssl Linkin

如何解决Vapor 2带来的这些OpenSSL/TLS问题?它们阻止我在命令行和Xcode中编译项目

在SPM构建期间:

note: you may be able to install ctls using your system-packager:

    brew install ctls

note: you may be able to install ctls using your system-packager:

    brew install openssl
Linking ./.build/debug/Run
ld: library not found for -lcrypto for architecture x86_64
<unknown>:0: error: link command failed with exit code 1 (use -v to see invocation)
<unknown>:0: error: build had 1 command failures
error: exit(1): /Library/Developer/Toolchains/swift-3.1-DEVELOPMENT-SNAPSHOT-2017-03-07-a.xctoolchain/usr/bin/swift-build-tool -f /Users/tanner/Desktop/PackageConfig/.build/debug.yaml
SPM构建失败时:

note: you may be able to install ctls using your system-packager:

    brew install ctls

note: you may be able to install ctls using your system-packager:

    brew install openssl
Linking ./.build/debug/Run
ld: library not found for -lcrypto for architecture x86_64
<unknown>:0: error: link command failed with exit code 1 (use -v to see invocation)
<unknown>:0: error: build had 1 command failures
error: exit(1): /Library/Developer/Toolchains/swift-3.1-DEVELOPMENT-SNAPSHOT-2017-03-07-a.xctoolchain/usr/bin/swift-build-tool -f /Users/tanner/Desktop/PackageConfig/.build/debug.yaml

此错误表示OpenSSL未安装或未正确链接。这个问题有三种解决办法

选项1:使用Vapor工具箱(推荐) 安装Vapor工具箱的最新版本

如果已安装工具箱,请先尝试卸载它:

which vapor
rm -rf /path/to/vapor
1.1安装(macOS) 添加Vapor的自制水龙头

brew tap vapor/homebrew-tap
brew tap vapor/homebrew-tap
更新自制软件并安装工具箱

brew update
brew install vapor
1.2安装(Ubuntu) 添加Vapor的APT回购

快速脚本 手册 安装 1.3完成 您现在应该可以访问
vapor
程序,并且应该安装所有必需的依赖项

vapor build
vapor xcode
swift build
和相关命令现在也应该正常工作

swift build
swift package generate-xcodeproj
选项2:安装Vapor的CTLS包 2.1安装(macOS) 添加Vapor的自制水龙头

brew tap vapor/homebrew-tap
brew tap vapor/homebrew-tap
更新自制软件并安装CTLS

brew update
brew install ctls
重新启动终端,重新生成Xcode项目(如果使用Xcode),然后重试

2.2安装(Ubuntu) 添加Vapor的APT回购

快速脚本 手册 更新APT并安装CTL

sudo apt-get update
sudo apt-get install ctls
2.3完成
swift build
和其他命令现在应该可以正常工作了

swift build
swift package generate-xcodeproj
选项3:手动安装并链接OpenSSL或同等产品 3.1安装(macOS) 安装OpenSSL(或任何其他类似的SSL库)

3.2安装(Ubuntu) 安装OpenSSL(或任何其他类似的SSL库)

3.3查找链接器标志 您可以使用
pkg config
(在brew和apt上提供)查找链接器标志或大多数软件包

pkg-config <package-name> --cflags
pkg-config <package-name> --libs
注意,一些库将安装到不需要显式链接器标志的
/usr/include
/usr/lib
中。通过APT的OpenSSL是这样安装的

3.4使用链接器标志 链接器标志可以在
swift构建期间添加

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

@tanner0101您的建议并没有解决我的问题。我发现CTLS不仅在High Sierra上丢失了错误,而且在Docker容器内的Ubuntu上也丢失了错误


该项目可以手动执行,但MySQL不工作。我认为这不仅仅是Heroku问题上的部署。

因为您将自制软件引入其中。。。另见,,,等。
sudo apt-get install libssl-dev
pkg-config <package-name> --cflags
pkg-config <package-name> --libs
include: /usr/local/opt/openssl/include
libs: /usr/local/opt/openssl/lib
swift build -Xswiftc -I/path/to/include -Xlinker -L/path/to/lib
swift package -Xswiftc -I/path/to/include -Xlinker -L/path/to/lib generate-xcodeproj