vs2019 在C++项目中添加cuda配置(#include “cuda_runtime.h“等飘红问题解决)

文章描述了在C++项目中使用CUDA时遇到的配置问题,包括在项目属性中添加CUDA的bin和lib文件路径,以及自定义生成依赖项。解决了头文件找不到的问题后,又遇到了Link2019错误,通过在.cu文件中函数前添加`externC`解决了链接问题。此外,还记录了遇到的‘atomicAdd’未定义错误,暗示了需要包含相应的头文件或库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

按常规流程安装好cuda,并配置好cuda的系统环境变量后。

我们打开原有的C++项目,在项目中添加.cu后缀的文件,并加头文件后可能报错如下

方法一:项目设置中添加以下三个cuda文件路径

 方法二:

解决方法:主要有3个要点:

要点1:在项目属性中添加CUDA的bin文件

要点2:在项目属性中添加CUDA的lib文件

要点3:自定义生成依赖项

接下来是操作流程截图:

要点1的操作流程:

 要点2操作流程:

 要点3操作流程:

以上三点操作完成点击应用后,报错消失,头文件正确包含:

2023-05-25,补充:

今天更新一版程序,并按上述进行配置解决飘红等错误后出现一个新错误:

CPP文件中调用的cuda程序显示:Link2019,无法解析的外部符号:JacobiAlgorithm_CUDA()。

这个错误是无法链接到该函数的定义,即.cu文件中的JacobiAlgorithm_CUDA()。

在cpp中添加.cu头文件,将其包括进来可以解决这个错误,但会出现语法错误“<”。理论上头文件只需要cuh即可。

上述方法不可行后,在microsoft官网查询:Link2019,这个错误类型(链接器工具错误 LNK2019 | Microsoft Learn)。在cu文件中的JacobiAlgorithm_CUDA()的上一行添加:extern"C"后,就可以编译了,奇怪呀。

---------------------------------------------------------------------------------------------------------------------------------

隔了两个月重新来写cuda,原先的项目配置又有个老问题记录一下

错误:未定义的标识符 “atomicAdd”

解决方法:

20250707,,有段时间没系统写cuda与C++的耦合编程了,记录新遇到的问题

正常的编写cuda的.cuh和.cu文件代码,编译通过

但是将.cuh文件引入.cpp、.h或者其他.cu文件中作为头文件时,始终报错,无法编译通过。

解决办法:以后不写.cuh文件,直接将声明写在.h文件中,.cu中写实现,同时.h中不要写任何cudafree()、cudamalloc()等cuda 的API函数,因为这些需要nvcc 编译,不能使用g++编译。

核函数直接写在.cu文件中,不额外写单独的声明!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值