小编joe*_*hmo的帖子

如何使用cmake为嵌套子目录设置Visual Studio过滤器

我有以下结构

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)

c++ cmake visual-studio visual-studio-2012

17
推荐指数
3
解决办法
8962
查看次数

如何在不检测错误的情况下使用 vscode 开发 Linux 内核模块

我正在尝试在 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)

1 2 3 4

visual-studio-code vscode-settings

1
推荐指数
1
解决办法
3111
查看次数