macOS下CMake编译XPwn报libcrypto缺失(已找到OpenSSL仍报错)求助
解决方案
1. 修复CMake弃用警告
直接修改项目根目录CMakeLists.txt第一行:
将原有内容cmake_minimum_required(VERSION 2.6)替换为cmake_minimum_required(VERSION 2.8.12)即可消除该警告。
2. 解决libcrypto已找到仍报错的问题
该问题的核心原因是ipsw-patch子目录下的CMakeLists.txt使用了老旧的独立查找逻辑,和全局的OpenSSL查找结果不互通,即使全局找到了OpenSSL,子模块自身的查找逻辑没匹配到库就会抛出错误。
你可以按以下优先级尝试解决:
- 执行cmake命令时手动传入libcrypto的路径,适配Homebrew安装的openssl:
cmake .. \ -DOPENSSL_ROOT_DIR=/usr/local/Cellar/openssl@1.1/1.1.1k \ -DCRYPTO_LIBRARY=/usr/local/Cellar/openssl@1.1/1.1.1k/lib/libcrypto.dylib - 若上述方法无效,关闭静态编译选项后重试:
cmake .. -DBUILD_STATIC=OFF \ -DOPENSSL_ROOT_DIR=/usr/local/Cellar/openssl@1.1/1.1.1k \ -DCRYPTO_LIBRARY=/usr/local/Cellar/openssl@1.1/1.1.1k/lib/libcrypto.dylib - 永久修复方案:修改
ipsw-patch/CMakeLists.txt中的libcrypto查找逻辑,替换原有独立查找代码为:
后续链接对应目标时,将原有链接的find_package(OpenSSL REQUIRED) include_directories(${OPENSSL_INCLUDE_DIR})${CRYPTO_LIBRARY}替换为${OPENSSL_CRYPTO_LIBRARY}即可。
内容的提问来源于stack exchange,提问作者Nick75704
相关产品推荐
相关产品推荐

