CMake forward declear библиотеки (OpenSSL) - PullRequest
0 голосов
/ 13 июля 2020

Я загрузил janbar OpenSSL Cmake , чтобы иметь возможность перекрестно компилировать мой код, который OpenSSL (вернее, я использую Curl, которому нужен OpenSSL). Я запустил OpenSSL CMake как автономный, и он отлично скомпилировался, и я получил от него некоторую библиотеку и исполняемые файлы. Затем я хотел включить его в свой проект, сначала я просто добавил папку, в которую я извлек OpenSSL с CMakefiles как таковой: add_subdirectory(openssl). Это не сработало, так как find_package(OpenSSL) будет жаловаться, что:

Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY, missing: OPENSSL_INCLUDE_DIR) (found version "1.1.1g")

Здесь я сделал немного "плохого" CMake, так как я знал, где находится папка include и где библиотеки будут go, поэтому я сделал это в конце OpenSSL Cmake:

set(OPENSSL_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/include" CACHE PATH "Path to include dir")
set(OPENSSL_CRYPTO_LIBRARY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libcrypto.lib")

При настройке это дает мне аналогичную ошибку:

Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY) (found version "1.1.1g")

Функция поиска, похоже, довольна моим включением, однако он по-прежнему жалуется, что не находит библиотеку Crypto. Я знаю, что крипто-файл .lib будет создан при сборке OpenSSL. Я делал это «предварительное объявление» раньше в других проектах, где FindPackage не работает из-за поиска в неправильном месте или где файлы еще не были созданы. Я не уверен, почему это не удается, так как я добивался успеха в прошлом (несмотря на то, что это не рекомендованная практика). указатель, чтобы заставить его работать так, как я хочу: Скомпилируйте OpenSSL вместе с моим проектом с помощью CMake.

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...