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}"