Но теперь у меня проблема в VSCode, когда большая часть intilisense не работает из-за невозможности открыть исходный файл "internal/e_os.h". " (зависимость от "string").
Эта проблема в том, что я понятия не имею, почему он ищет внутренний/e_os.h, а не openssl/e_os .h, поскольку последний существует, а первый нет. Я обыскал всю свою систему (MacOS) и обнаружил множество файлов e_os.h, но все они находятся в каталоге openssl, а не во внутреннем каталоге.
Мой .c_cpp_properties Файл .json прост и работает для всех других зависимостей cmake:
Код: Выделить всё
{
"configurations": [
{
"name": "engine",
"includePath": [
"${workspaceFolder}/include/**",
"${workspaceFolder}/build/_deps/**",
"${workspaceFolder}/build/_deps/openssl-install/include/"
],
"cppStandard": "c++20"
}
],
"version": 4
}
Код: Выделить всё
#
# OpenSSL
#
set(OPENSSL_SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/_deps/openssl-src)
set(OPENSSL_INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}/_deps/openssl-install)
set(OPENSSL_INCLUDE_DIR ${OPENSSL_INSTALL_DIR}/include)
set(OPENSSL_CONFIGURE_COMMAND ${OPENSSL_SOURCE_DIR}/config)
set(OPENSSL_LIB_SSL ${OPENSSL_INSTALL_DIR}/lib/libssl.a)
set(OPENSSL_LIB_CRYPTO ${OPENSSL_INSTALL_DIR}/lib/libcrypto.a)
if(NOT EXISTS ${OPENSSL_LIB_SSL} OR NOT EXISTS ${OPENSSL_LIB_CRYPTO})
message("-- OpenSSL Not Found")
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/_deps)
ExternalProject_Add(
OpenSSL
SOURCE_DIR ${OPENSSL_SOURCE_DIR}
GIT_REPOSITORY https://github.com/openssl/openssl.git
GIT_TAG openssl-3.3.2
USES_TERMINAL_DOWNLOAD TRUE
CONFIGURE_COMMAND
${OPENSSL_CONFIGURE_COMMAND}
--prefix=${OPENSSL_INSTALL_DIR}
--openssldir=${OPENSSL_INSTALL_DIR}
BUILD_COMMAND make
TEST_COMMAND ""
INSTALL_COMMAND make install
INSTALL_DIR ${OPENSSL_INSTALL_DIR}
)
set(OPENSSL_LIBRARIES ${OPENSSL_LIB_SSL} ${OPENSSL_LIB_CRYPTO})
file(MAKE_DIRECTORY ${OPENSSL_INCLUDE_DIR})
else()
message("-- OpenSSL Found")
endif()
add_library(OpenSSL::SSL STATIC IMPORTED GLOBAL)
set_property(TARGET OpenSSL::SSL PROPERTY IMPORTED_LOCATION ${OPENSSL_INSTALL_DIR}/lib/libssl.a)
set_property(TARGET OpenSSL::SSL PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${OPENSSL_INCLUDE_DIR})
add_dependencies(OpenSSL::SSL OpenSSL)
add_library(OpenSSL::Crypto STATIC IMPORTED GLOBAL)
set_property(TARGET OpenSSL::Crypto PROPERTY IMPORTED_LOCATION ${OPENSSL_INSTALL_DIR}/lib/libcrypto.a)
set_property(TARGET OpenSSL::Crypto PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${OPENSSL_INCLUDE_DIR})
add_dependencies(OpenSSL::Crypto OpenSSL)
Подробнее здесь: https://stackoverflow.com/questions/790 ... -of-string