我有以下结构
Main (dir)
+-- CMakeLists.txt
+-- File.cpp
+-- File.hpp
+-- Dir (dir)
+-- CMakeLists.txt
+-- File1.cpp
+-- File1.hpp
+-- File2.cpp
+-- File2.hpp
Run Code Online (Sandbox Code Playgroud)
主/的CMakeLists.txt
CMAKE_MINIMUM_REQUIRED (VERSION 2.8.11)
PROJECT(Main)
FILE(GLOB SOURCE
"*.hpp"
"*.cpp"
)
ADD_SUBDIRECTORY(Dir)
ADD_EXECUTABLE(Main ${SOURCE})
Run Code Online (Sandbox Code Playgroud)
主/ DIR /的CMakeLists.txt
FILE(GLOB LOCAL_SOURCE
"*.hpp"
"*.cpp"
)
SET(SOURCE
${SOURCE}
${LOCAL_SOURCE}
PARENT_SCOPE
)
Run Code Online (Sandbox Code Playgroud)
它在Visual Studio中生成以下结构

我想要的是:

我尝试了什么:
主/的CMakeLists.txt
CMAKE_MINIMUM_REQUIRED (VERSION 2.8.11)
PROJECT(Main)
FILE(GLOB LOCAL_SOURCE
"*.hpp"
"*.cpp"
)
SET(SOURCE
${LOCAL_SOURCE}
)
ADD_SUBDIRECTORY(Dir)
SOURCE_GROUP(Main FILES ${LOCAL_SOURCE})
ADD_EXECUTABLE(Main ${SOURCE})
Run Code Online (Sandbox Code Playgroud)
主/ DIR /的CMakeLists.txt
FILE(GLOB LOCAL_SOURCE
"*.hpp"
"*.cpp"
)
SET(SOURCE …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 Ubuntu 上使用 vscode 开发 Linux 内核模块,但是 vscode 会抛出很多关于 Linux 系统头、内核宏等的错误(即使它只是一个几乎空的驱动程序......)
有人可以帮我配置 vscode 来消除这些错误吗?
下面是我的配置和错误截图。
//c_cpp_properties.json
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}",
"/usr/src/linux-headers-4.15.0-65/include"
],
"defines": [
],
"compilerPath": "/usr/bin/clang",
"cStandard": "c99",
"cppStandard": "c++14",
"browse": {
"path": [
"${workspaceFolder}",
"/usr/src/linux-headers-4.15.0-65/include"
],
"limitSymbolsToIncludedHeaders": true
},
"intelliSenseMode": "clang-x64"
}
],
"version": 4
}
Run Code Online (Sandbox Code Playgroud)
//settings.json
{
"files.associations": {
"init.h": "c",
"module.h": "c",
"workqueue.h": "c",
"list.h": "c",
"types.h": "c",
"posix_types.h": "c"
},
"C_Cpp.errorSquiggles": "Enabled",
"clang.cflags": [
"-std=c99",
"-I/usr/src/linux-headers-4.15.0-65/include",
"-DMODULE",
]
}
Run Code Online (Sandbox Code Playgroud)
