Windows11下安装Unreal Engine GameLift遇CMake找不到OpenSSL问题求助
问题场景
在Windows 11 + Visual Studio 2022环境下,编译Unreal Engine适配的GameLift C++ Server SDK(v5.0.0)时,执行以下命令:
msbuild ALL_BUILD.vcxproj /p:Configuration=Release
触发CMake无法定位OpenSSL的错误,具体报错如下:
Performing forcebuild step for 'aws-cpp-sdk-gamelift-server'
Force build of aws-cpp-sdk-gamelift-server
Performing configure step for 'aws-cpp-sdk-gamelift-server'
loading initial cache file C:/Users/Saif/Downloads/GameLift-Cpp-ServerSDK-5.0.0/out/aws-cpp-sdk-gamelift-server-prefix/tmp/aws-cpp-sdk-gamelift-server-cache-Release.cmake
CMake Error at C:/Program Files/CMake/share/cmake-3.26/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
-- Configuring incomplete, errors occurred!
Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the
system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY
OPENSSL_INCLUDE_DIR)
Call Stack (most recent call first):
C:/Program Files/CMake/share/cmake-3.26/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE)
C:/Program Files/CMake/share/cmake-3.26/Modules/FindOpenSSL.cmake:670 (find_package_handle_standard_args)
CMakeLists.txt:53 (find_package)
解决方案
1. 安装匹配架构的OpenSSL
- 选择与Visual Studio 2022编译架构(x64/x86)一致的OpenSSL预编译版本,优先选择GameLift SDK文档推荐的版本(通常为v1.1.x或v3.x系列)。
- 安装时指定清晰的根路径(如
C:\OpenSSL-win64),并勾选"Add OpenSSL to system PATH"选项,避免后续手动配置路径。
2. 配置系统环境变量
若安装时未添加PATH或需要手动指定路径:
- 打开「此电脑 → 属性 → 高级系统设置 → 环境变量」。
- 在系统变量区域添加以下条目:
OPENSSL_ROOT_DIR:值为OpenSSL安装根目录(如C:\OpenSSL-win64)OPENSSL_INCLUDE_DIR:值为%OPENSSL_ROOT_DIR%\includeOPENSSL_CRYPTO_LIBRARY:值为%OPENSSL_ROOT_DIR%\lib\libcrypto.lib(Release编译)或%OPENSSL_ROOT_DIR%\lib\libcryptoMD.lib(Debug编译)
- 配置完成后重启命令提示符或Visual Studio,确保环境变量生效。
3. 直接在msbuild命令中传递路径参数
无需修改系统环境变量,可在执行msbuild时直接指定OpenSSL路径:
msbuild ALL_BUILD.vcxproj /p:Configuration=Release /p:OPENSSL_ROOT_DIR=C:\OpenSSL-win64 /p:OPENSSL_INCLUDE_DIR=C:\OpenSSL-win64\include /p:OPENSSL_CRYPTO_LIBRARY=C:\OpenSSL-win64\lib\libcrypto.lib
4. 清理CMake缓存并重新编译
- 删除GameLift SDK目录下的
out文件夹(即报错中的C:/Users/Saif/Downloads/GameLift-Cpp-ServerSDK-5.0.0/out),清除旧的CMake缓存配置。 - 重新执行msbuild命令,让CMake重新读取新的OpenSSL路径信息。
内容的提问来源于stack exchange,提问作者Saif Ejjilali

