Tôi đã cài đặt OpenSSL từ brew và find_package
dường như phát hiện phiên bản brew, nhưng nó cố gắng liên kết liên kết dự án với OpenSSL được cài đặt trong hệ thống, đó là LibreSSL.
Tôi đã cố gắng buộc find_package
thiết lập đường dẫn chính xác của thư viện, nhưng nó không làm gì cả:
if(APPLE)
set(OPENSSL_ROOT_DIR /usr/local/Cellar/openssl@1.1/1.1.1d/)
endif()
Vì vậy, tôi đã kết thúc bằng cách thiết lập các phụ thuộc bằng tay, điều này không lý tưởng nhưng nó hoạt động trong thời gian chờ đợi để phát triển.
# OpenSSL
find_package(OpenSSL REQUIRED)
if(OPENSSL_FOUND)
if(APPLE)
include_directories(/usr/local/Cellar/openssl@1.1/1.1.1d/include)
list(APPEND LIB_LIST /usr/local/Cellar/openssl@1.1/1.1.1d/lib/libssl.dylib)
list(APPEND LIB_LIST /usr/local/Cellar/openssl@1.1/1.1.1d/lib/libcrypto.dylib)
message(STATUS "OpenSSL Version: ${OPENSSL_VERSION} ${OPENSSL_INCLUDE_DIR} ${OPENSSL_LIBRARIES}")
else()
include_directories(${OPENSSL_INCLUDE_DIR})
list(APPEND LIB_LIST ${OPENSSL_LIBRARIES})
message(STATUS "OpenSSL Version: ${OPENSSL_VERSION} ${OPENSSL_INCLUDE_DIR} ${OPENSSL_LIBRARIES}")
endif()
endif()
Đầu ra Cmake cung cấp thông tin này, nơi nó phát hiện thư viện OpenSSL từ brew, nhưng liên kết với thư viện hệ thống. Không chắc chắn lý do tại sao.
-- OpenSSL Version: 1.1.1d /usr/local/Cellar/openssl@1.1/1.1.1d/include /usr/lib/libssl.dylib;/usr/lib/libcrypto.dylib
Hy vọng điều này giúp đỡ!