如何在.cpp文件中包含<cuda_runtime.h>

9

我在 .cpp 文件中包含 <cuda_runtime.h> 时遇到了问题。错误信息: Cannot include file: cuda_runtime.h: No such file or directory

我正在尝试编译 Rob Farber 的代码(http://www.drdobbs.com/architecture-and-design/222600097?pgno=1)。

之前我已经编译过几个 cuda 代码,但是 <cuda_runtime.h> 总是在 .cu 文件中被包含。

我使用的是 VS 2008 Express。

问:我需要以某种不同的方式链接 VS,以便它知道在哪里查找 <cuda_runtime.h> 吗?


1
此标头文件位于<path_to_instalation>\NVIDIA GPU Computing Toolkit\CUDA<version>\include\cuda_runtime.h。原因可能是,cl编译器包含的文件未在nvcc中传播。请尝试手动传递它。 - geek
谢谢。有没有办法强制VS在查找.h文件时查找<path_to_instalation>\NVIDIA GPU Computing Toolkit\CUDA<version>\include目录?我必须包含许多.h文件,因此我正在寻找一些方便的方法。 - user1281071
在您的解决方案属性中的 VC++ 目录 中,添加 CUDA 工具包包含目录。您还可以为 CUDA 指定库和运行时目录。 - geek
2个回答

7
在Visual Studio 2008中,需要在Visual C++目录中添加包含文件的路径。
路径为:"Installation Path"\NVIDIA GPU Computing Toolkit\CUDA\"version"\include\。
操作步骤如下: 1. 打开Visual Studio 2008,进入以下路径:Tools -> Options -> Projects And Solutions -> Visual C++ Directories。 2. 从"Show Directories For"下拉列表中选择“包含文件”。 3. 点击下方黄色按钮,新增一个项目。 4. 将包含文件的路径粘贴到此处。 5. 点击左侧黄色按钮旁边的检查按钮,验证路径是否正确。 6. 点击“确定”并重启Visual Studio。 现在,Visual Studio 2008就知道包含文件的位置了。

8
这种方法在更新的Visual Studio版本中已经过时。现在,您需要在项目属性中添加此类内容。打开VS,右键单击项目->属性。在新弹出的窗口中,选择“配置属性”->“VC++目录”。然后在“包含目录”区域中添加新路径。现在,对于CUDA,它在安装时链接到VS中。因此,您实际上需要做一些略微不同的事情。打开VS,选择项目,然后从菜单中选择“项目”->“生成自定义”,然后在新的对话框中,在CUDA旁边放上复选框。您可能需要将cudart.lib添加到其他依赖项中。 - LawfulEvil
@LawfulEvil... 多亏了NVIDIA,NSIGHT附带的CUDA模板为我们省去了所有麻烦。 - sgarizvi

6

不要设置硬编码路径,因为在定位机器上的CUDA安装时,您很可能会遇到这种情况。您也可以将cudart.lib作为链接器的附加依赖项添加。

右键单击项目 > 属性 > 链接器 > 输入 > 附加依赖项。在那里添加cudart.lib


1
这对我很有帮助:在“项目”>“属性”>“链接器”>“输入”>“附加依赖项”中添加cudart_static.lib,并在“项目”>“属性”>“链接器”>“常规”>“附加库目录”中设置实际路径到libs目录。 - Volkov Maxim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接