CMake句柄也包括路径内容吗?

时间:2018-12-12 09:11:09

标签: c++ cmake header linker

要在我的CMake项目中添加 VulkanSDK ,我使用了find_package()target_link_libraries(),然后通过添加到包含路径来编辑VSCode项目配置。

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**",
                "D:/Programs/VulkanSDK/1.1.85.0/Include"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "windowsSdkVersion": "10.0.17763.0",
            "compilerPath": "C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/cl.exe",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "msvc-x64"
        }
    ],
    "version": 4
}

我应该使用cmake包含这些标头,而不使用VSCode项目配置吗?

1 个答案:

答案 0 :(得分:1)

您可以在发布的配置中set the compileCommands variabletell CMake to generate the compile commands

cmake -DCMAKE_EXPORT_COMPILE_COMMANDS:Bool=true ...

这样,CMake会创建一个用于编译代码的所有命令行的JSON数据库,而VSCode可以使用相同的命令来提供智能感知。

  

请注意,此方法仅适用于CMake页面上列出的Makefile生成器和Ninja生成器。