配置Azerothcore时遇CMake错误:找不到OpenSSL缺失OPENSSL_CRYPTO_LIBRARY如何解决?
CMake配置Azerothcore时OpenSSL查找失败的解决办法
问题详情
构建Azerothcore时CMake抛出以下错误:
CMake Error at C:/Program Files/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 Crypto SSL) (found version "3.2.0") Call Stack (most recent call first): C:/Program Files/CMake/share/cmake-3.27/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE) src/cmake/macros/FindOpenSSL.cmake:559 (find_package_handle_standard_args) deps/openssl/CMakeLists.txt:17 (find_package)
已手动添加以下系统环境变量,但问题仍存在:
OPENSSL_INCLUDE_DIR C:/Program Files/OpenSSL-Win64/include OPENSSL_LIBRARIES C:/Program Files/OpenSSL-Win64/lib OPENSSL_ROOT_DIR C:/Program Files/OpenSSL-Win64
解决方案
检查OpenSSL版本兼容性:
Azerothcore对OpenSSL 3.x版本的支持可能存在适配问题,报错中显示找到的是3.2.0,建议降级到OpenSSL 1.1.x系列(比如1.1.1w),这是多数旧版项目的稳定兼容版本。确保环境变量生效:
添加系统变量后,必须重启CMake、终端或者你使用的IDE,否则新的环境变量不会被读取。修正OPENSSL_LIBRARIES路径:
该变量需要指向具体的库文件,而不是仅到lib目录。64位系统下,设置为:C:/Program Files/OpenSSL-Win64/lib/libcrypto.lib;C:/Program Files/OpenSSL-Win64/lib/libssl.lib两个路径用分号分隔。
清理CMake缓存:
删除build目录下的CMakeCache.txt文件和CMakeFiles文件夹,重新运行CMake配置,避免旧缓存残留导致的路径识别问题。手动在CMake命令行指定参数:
如果环境变量依然不生效,可以直接在运行CMake时传递参数(替换为你的Visual Studio版本和OpenSSL实际路径):cmake -G "Visual Studio 17 2022" -A x64 -DOPENSSL_ROOT_DIR="C:/Program Files/OpenSSL-Win64" -DOPENSSL_CRYPTO_LIBRARY="C:/Program Files/OpenSSL-Win64/lib/libcrypto.lib" -DOPENSSL_SSL_LIBRARY="C:/Program Files/OpenSSL-Win64/lib/libssl.lib" ..
内容的提问来源于stack exchange,提问作者Anton M
相关产品推荐
相关产品推荐

