vapor 2的openssl/ctls故障
如何解决Vapor 2带来的这些OpenSSL/TLS问题?它们阻止我在命令行和Xcode中编译项目 在SPM构建期间: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
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