VSCode 包含路径 属性 无法正常工作

VSCode include path property not working properly

背景故事

文件结构:

+-> .vscode
| |
| +-> c_cpp_properties.json
| +-> settings.json
|
+-> bin
| |
| +-> Abyssal.exe
|
+-> build (CMake build files)
|
+-> src
| |
| +-> AbyssalWindow.h
| +-> main.cpp
|
+-> vendor (nothing inside this folder)
+-> CMakeLists.txt 
{
    "env": {
        "myDefaultIncludePath": [
            "${workspaceFolder}",
            "${workspaceFolder}/src"
        ]
    },
    "configurations": [
        {
            "name": "Windows",
            "intelliSenseMode": "${default}",
            "includePath": [
                "${myDefaultIncludePath}",
                "C:/VulkanSDK/1.2.189.0/Include",
                "C:/glfw-3.3.4/include"
            ],
            "cStandard": "c17",
            "cppStandard": "c++17",
            "configurationProvider": "ms-vscode.cmake-tools"
        }
    ],
    "version": 4
}
#define GLFW_INCLUDE_VULKAN
#include <GLFW/glfw3.h>

你说你想使用 CMake 作为你的构建系统。我强烈建议您将所有构建设置保留在 CMake 中。

要转换您的 vscode 配置,请使用:

set(CMAKE_C_STANDARD 17)
set(CMAKE_CXX_STANDARD 17)

# declare global include directories used by all targets
# by using 'SYSTEM' many compilers will hide internal warnings
include_directories(SYSTEM
  "C:/VulkanSDK/1.2.189.0/Include"
  "C:/glfw-3.3.4/include"
)

从您的 vscode 配置中删除相应的设置,并将新创建的头文件添加到您对 add_executable 的调用中,以便 vscode 获得文件的正确包含目录。

而不是 include_directories 你可能更喜欢

target_include_directories(YOURTARGET ...)

更具体/“现代”。