Windows11编译AmazonGamelift C++ SDK遇OpenSSL相关CMake错误求助
Windows 11编译Amazon GameLift C++ Server SDK的OpenSSL检测失败问题
环境与操作步骤
操作系统:Windows 11
按照官方文档的编译流程执行以下命令,在cmake阶段触发错误:
mkdir out cd out cmake -G "Visual Studio 17 2022" -DBUILD_FOR_UNREAL=1 .. msbuild ALL_BUILD.vcxproj /p:Configuration=Release
错误信息
-- Selecting Windows SDK version 10.0.22621.0 to target Windows 10.0.22631. CMake Error at C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.27/Modules/FindPackageHandleStandardArgs.cmake:230 (message): Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY) (found version "3.0.14") Call Stack (most recent call first): C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.27/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE) C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.27/Modules/FindOpenSSL.cmake:668 (find_package_handle_standard_args) CMakeLists.txt:10 (find_package)
疑问与已尝试操作
疑问点
- 已配置
OPENSSL_ROOT_DIR环境变量,为何仍提示未找到OpenSSL? - 错误显示“found version "3.0.14"”却报未找到,是否存在版本兼容问题?
- “missing: OPENSSL_CRYPTO_LIBRARY”是否为独立故障?
已尝试方案
- 添加
OPENSSL_CONFG、OPENSSL_INCLUDE_DIR、OPENSSL_LIBRARIES等环境变量 - 更换OpenSSL安装路径
- 降级OpenSSL至3.0.14版本
以上操作均未解决问题。
解决方案
1. 匹配OpenSSL架构与编译目标
CMake检测失败最常见原因是OpenSSL架构与Visual Studio编译架构不匹配:
- 若使用64位Visual Studio(默认),必须安装64位OpenSSL,32位版本会导致无法定位
libcrypto.lib(即OPENSSL_CRYPTO_LIBRARY) - 64位OpenSSL默认安装路径为
C:\Program Files\OpenSSL-Win64,32位为C:\Program Files (x86)\OpenSSL-Win32
2. 直接在CMake命令中指定OpenSSL路径
环境变量可能因终端未重启、权限问题未生效,可直接在cmake命令中显式声明路径:
cmake -G "Visual Studio 17 2022" -DBUILD_FOR_UNREAL=1 -DOPENSSL_ROOT_DIR="C:/Program Files/OpenSSL-Win64" -DOPENSSL_CRYPTO_LIBRARY="C:/Program Files/OpenSSL-Win64/lib/libcrypto.lib" ..
注意路径使用正斜杠或双反斜杠,避免转义错误。
3. 检查Visual Studio组件完整性
确保Visual Studio 2022已安装以下组件:
- C++开发工具核心组件
- Windows SDK
- C++ CMake工具组件
同时尝试以管理员身份运行终端,避免权限导致的文件访问限制。
4. 切换至兼容性更好的OpenSSL版本
部分旧版CMake对OpenSSL 3.x系列的支持存在细节问题,可尝试安装OpenSSL 1.1.1系列(如1.1.1w,长期支持版),安装后在cmake命令中指定对应路径即可。
5. 清理CMake缓存后重试
删除现有out目录,重新创建并执行cmake命令,避免旧缓存干扰检测逻辑:
rmdir /s out mkdir out cd out cmake -G "Visual Studio 17 2022" -DBUILD_FOR_UNREAL=1 -DOPENSSL_ROOT_DIR="C:/Program Files/OpenSSL-Win64" ..
内容的提问来源于stack exchange,提问作者Jives
相关产品推荐
相关产品推荐

