Visual Studio 代码无法将 cpp 和 Cuda (cu) 文件编译在一起
Visual Studio Code unable to compile cpp and Cuda (cu) files together
我有一个 C++ 程序,在 VS 代码中有多个 cpp 文件。最近我学习了一些CUDA编程,并尝试为这个程序添加一个cuda功能。但是,nvcc 编译器失败。如果我尝试将 cu 文件重命名为 cpp,我会收到错误消息:
expected primary-expression before ‘)’ token
cuda_hello<<<1, 1>>>();
我明白这是因为 nvcc 然后忽略了文件有 cuda 代码。那么有没有一种方法可以单独编译 cpp 和 cu 文件,然后在 VS 代码本身中组合它们或其他一些解决方案,也许通过更改 tasks.json 文件。
我能够解决这个问题。确保您的 nvcc 是最新的 (v 11) 并更新 tasks.json 参数如下:
"args": [
"-std=c++17",
"*.cu",
"*.cpp",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
],
确保 CUDA 代码以 *.cu 格式存在。
我有一个 C++ 程序,在 VS 代码中有多个 cpp 文件。最近我学习了一些CUDA编程,并尝试为这个程序添加一个cuda功能。但是,nvcc 编译器失败。如果我尝试将 cu 文件重命名为 cpp,我会收到错误消息:
expected primary-expression before ‘)’ token
cuda_hello<<<1, 1>>>();
我明白这是因为 nvcc 然后忽略了文件有 cuda 代码。那么有没有一种方法可以单独编译 cpp 和 cu 文件,然后在 VS 代码本身中组合它们或其他一些解决方案,也许通过更改 tasks.json 文件。
我能够解决这个问题。确保您的 nvcc 是最新的 (v 11) 并更新 tasks.json 参数如下:
"args": [
"-std=c++17",
"*.cu",
"*.cpp",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
],
确保 CUDA 代码以 *.cu 格式存在。