CMake 为 FIND_PACKAGE 设置起始路径?

新手上路,请多包涵

我正在使用通过 Homebrew 在 Mac 上安装的较新版本的 openssl,并且想知道是否有办法为 CMAKE 的 FIND_PACKAGE 函数设置启动路径?现在,当我尝试使用 FIND_PACKAGE 时,CMAKE 会发现我的操作系统使用的旧版本的 openssl。我目前在我的 CMakeLists.txt 中使用它

SET(OPENSSL_LIB_DIR /usr/local/Cellar/openssl/1.0.2f/lib)
INCLUDE_DIRECTORIES(/usr/local/Cellar/openssl/1.0.2f/include)
TARGET_LINK_LIBRARIES(mangaMe ${OPENSSL_LIB_DIR}/libcrypto.dylib ${OPENSSL_LIB_DIR}/libssl.dylib)

我唯一遇到的问题是,如果我的 openssl 更新,我必须手动更新路径中的版本。我已尝试阅读 CMAKE FIND_PACKAGE 文档,但不确定我将使用哪些 PATH 变量来获得我正在寻找的效果。

原文由 Jem4687 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.3k
2 个回答

You can either set OPENSSL_ROOT_DIR cmake variable or OPENSSL_ROOT_DIR env variable to the following path: /usr/local/Cellar/openssl/* and then use find_package .例子:

 set(OPENSSL_ROOT_DIR /usr/local/Cellar/openssl/*)
find_package(OpenSSL REQUIRED)
include_directories(${OPENSSL_INCLUDE_DIR})
add_executable(${PROJECT_NAME} main.cpp)
target_link_libraries(${PROJECT_NAME} ${OPENSSL_LIBRARIES})

原文由 ixSci 发布,翻译遵循 CC BY-SA 3.0 许可协议

您可以在调用 FindOpenSSL 之前使用 OPENSSL_ROOT_DIR

 set(OPENSSL_ROOT_DIR /usr/local/Cellar/openssl/1.0.2f/)
include(FindOpenSSL)

原文由 Guillaume 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题