C++ 为什么VisualStudio可以';即使已在CMake中指定,也找不到我的标题?

C++ 为什么VisualStudio可以';即使已在CMake中指定,也找不到我的标题?,c++,cmake,C++,Cmake,以下是我的项目的外观,供参考: + <root> + build + inc + libsm64 + libsm64.hpp + src + libsm64.cpp + CMakeLists.txt + CMakeLists.txt 以及/src的CMakeLists.txt: add_library(libsm64 libsm64.cpp ../inc/libsm64/libsm64.hpp) target_include_di

以下是我的项目的外观,供参考:

+ <root>
  + build
  + inc
    + libsm64
      + libsm64.hpp
  + src
    + libsm64.cpp
    + CMakeLists.txt
  + CMakeLists.txt
以及
/src
CMakeLists.txt

add_library(libsm64 libsm64.cpp ../inc/libsm64/libsm64.hpp)
target_include_directories(libsm64 PRIVATE ../inc)
Visual Studio 2019和VSCode都会在
libsm64.cpp
中给我一个错误,说它无法打开
libsm64/libsm64.hpp
。为什么?

编辑:即使我将相对目录引用替换为绝对引用,即
${libsm64\u PROJECT\u DIR}/inc/libsm64/libsm64.hpp
,它也不会工作。

请参阅和

您想添加一个
currentDir
条目,如下所示:

"currentDir": "${workspaceRoot}"

Visual Studio显然没有那么聪明。

在Visual Studio中,查看项目设置中的Include目录,看看添加了什么。它没有.sln文件,是使用Visual Studio的cmake集成创建的。我应该使用cmake生成.sln吗?我让cmake始终生成Visual Studio项目文件。我相信错误与
${libsm64_project_DIR}/inc/libsm64/libsm64.hpp
添加库(libsm64 libsm64.cpp../inc/libsm64/libsm64.hpp)
等一下,它说它无法打开libsm64/libsm64.hpp。编译错误?或者无法在IDE中打开文件?
"currentDir": "${workspaceRoot}"