Странная ошибка: невозможно открыть исходный файл «internal/e_os.h» (зависимость «строки»)C++

Программы на C++. Форум разработчиков
Anonymous
Странная ошибка: невозможно открыть исходный файл «internal/e_os.h» (зависимость «строки»)

Сообщение Anonymous »

Итак, у меня есть проект на C++, над которым я работаю, и я включаю исходный код openssl из cmake. Код работает нормально, и я могу без проблем скомпилировать его и связать с ним ссылку. Это intellisense, который не работает в редакторе.
Но теперь у меня проблема в 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 из моих файлов cmake:

Код: Выделить всё

#
# 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)
Как мне восстановить работу intellisense?

Подробнее здесь: https://stackoverflow.com/questions/790 ... -of-string

Вернуться в «C++»