MacOS Big Sur运行Xcode Vapor项目提示'openssl/conf.h'文件缺失错误
macOS Big Sur Vapor项目OpenSSL相关编译错误修复方案
- 核心问题成因:Homebrew 安装的 OpenSSL 默认不会将头文件、库文件链接到 Xcode 默认搜索路径,Big Sur 加强了系统目录权限限制,旧版本的软链接适配方法失效,因此无法找到
openssl/conf.h文件,连带触发CNIOOpenSSL模块构建失败。 - 前置清理操作:OpenSSL和LibreSSL会互相冲突,先执行终端命令卸载LibreSSL:
brew uninstall libressl - 步骤1:查询本机OpenSSL安装路径
执行终端命令:brew --prefix openssl
Intel 芯片Mac返回路径类似/usr/local/opt/openssl@3,Apple 芯片Mac返回路径类似/opt/homebrew/opt/openssl@3。请将后续所有配置中的占位路径替换为该命令返回的实际路径,不要直接照搬示例路径。 - 步骤2:配置Xcode项目搜索路径
- 打开Xcode项目,选中左侧TARGETS下的运行目标,切换到Build Settings页面
- 搜索
Header Search Paths,添加路径<你的OpenSSL路径>/include,右侧权限选择recursive - 搜索
Library Search Paths,添加路径<你的OpenSSL路径>/lib,右侧权限选择recursive
- 步骤3:适配Swift Package Manager(SPM)配置
如果你的项目用SPM管理依赖,打开Package.swift文件,在对应target的配置中添加编译和链接参数:
.target( name: "你的Target名称", dependencies: [ // 此处保留你原有依赖配置 ], swiftSettings: [ .unsafeFlags(["-I", "<你的OpenSSL路径>/include"]) ], linkerSettings: [ .unsafeFlags(["-L", "<你的OpenSSL路径>/lib"]) ] )
- 临时生效方案:如果以上配置后仍然报错,可在终端先执行环境变量导出命令,再在同窗口打开Xcode,让Xcode继承环境变量:
# Intel芯片Mac执行 export LDFLAGS="-L/usr/local/opt/openssl@3/lib" export CPPFLAGS="-I/usr/local/opt/openssl@3/include" # Apple芯片Mac执行 export LDFLAGS="-L/opt/homebrew/opt/openssl@3/lib" export CPPFLAGS="-I/opt/homebrew/opt/openssl@3/include" # 同终端窗口打开当前目录的Xcode项目 xed .
内容的提问来源于stack exchange,提问作者Jerry
相关产品推荐
相关产品推荐

