cuda+VSCode+CMake!一文搞定所有配置信息_cuda cmake-CSDN博客

这篇文章是在Linux环境里配置的,下面解释Windows下 怎么用vscode配置cuda

下载VS和CUDA

Windows下的编译器主要就是MSVC,但是VS2026的编译器,当前的CUDA好像不太支持,所以还是先用VS2022,关于怎么下载2022,我这里也有教程如何下载老版Visual Studio-CSDN博客

注意别光下IDE,得下C++桌面开发工具

然后我们要下载cuda,网址在此CUDA Toolkit 13.2 Downloads | NVIDIA Developer

配置参考如下

既然本篇文章是Windows下,肯定操作系统选Windows,Version指的是Windows版本,我个人是Win11.一般就选local的exe,然后下载installer即可

然后我们启动这个installer程序,在选项时选择自定义

为什么要这么说呢,主要是强调一定要下载VS的配套

之后就自行安装即可。

最好把nvcc编译器的路径设置为环境变量的路径,一般在

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.6\bin

这个路径下

同样强烈推荐直接把CUDA的路径加入环境变量

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.6

VSCode和CMake的下载我就不介绍了,请自行下载

代码和CMAKE配置

我们以下面的代码作为演示,非常简单

#include <iostream>
#include "cuda_runtime.h"
int main() {
    int count=0;
    cudaGetDeviceCount(&count);
    std::cout << count;
}

CMakeLists.txt也很简单

cmake_minimum_required(VERSION 3.18)

project(test LANGUAGES CXX CUDA)

find_package(CUDAToolkit REQUIRED)

add_executable(test main.cpp)

target_link_libraries(test
    CUDA::cudart
)

这里注意,如果你没把cuda路径加入环境变量,那么find_package是找不到的,到时候每次cmake命令都得额外指定路径-DCUDAToolkit_ROOT="C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v12.6"

不如直接加入环境变量

tasks.json

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "CMake Configure By VS2026",
            "type": "shell",
            "command": "cmake",
            "args": [
                "-S", "${workspaceFolder}",
                "-B", "${workspaceFolder}/build",
                "-G", "Visual Studio 18 2026"
            ]
        },
        {
            "label": "CMake Configure By VS2022",
            "type": "shell",
            "command": "cmake",
            "args": [
                "-S", "${workspaceFolder}",
                "-B", "${workspaceFolder}/build",
                "-G", "Visual Studio 17 2022"
            ]
        },
        {
            "label": "CMake Build",
            "type": "shell",
            "command": "cmake",
            "args": [
                "--build", "${workspaceFolder}/build",
                "--config", "Debug",
                "--parallel"
            ],
            "dependsOn": "CMake Configure",
            "group": "build"
        }
    ]
}

这里和Linux不同的是cmake需要加-G选项,指定VS的版本。虽然我给出了2026版的,但是编译CUDA时请使用2022

c_cpp_properties.json

{
  "configurations": [
    {
      "name": "Win32",
      "compilerPath": "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/cl.exe",
      "includePath": [
        "${workspaceFolder}/**",
        "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v12.6/include"
      ],
      "intelliSenseMode": "windows-msvc-x64",
      "cppStandard": "c++17"
    }
  ],
  "version": 4
}

我这里用了VSCode的微软C++插件,上面是配置。如果你喜欢用clangd,可以参考这篇文章。

VSCode的微软C++插件不能使用,clangd如何搭配cuda使用?-CSDN博客

注意修改compilePath和includePath为自己的路径即可

settings.json

{
    "files.associations": {
        "iostream": "cpp"
    },

    "C_Cpp.default.compileCommands": "${workspaceFolder}/build/compile_commands.json",
    "C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools",

    "terminal.integrated.defaultProfile.windows": "PowerShell"
}

运行结果

执行tasks.json的configure和build,就可以生成对应的可执行文件了。

应该会生成在.\build\Debug\test.exe

最后运行test.exe即可

更多推荐