C++ 使用CUDA驱动程序API VS2012时未解析的外部符号
我一直在尝试使用CUDA驱动程序API加载.ptx文件和其中的函数,代码如下:C++ 使用CUDA驱动程序API VS2012时未解析的外部符号,c++,visual-studio-2012,cuda,C++,Visual Studio 2012,Cuda,我一直在尝试使用CUDA驱动程序API加载.ptx文件和其中的函数,代码如下: CUdevice device; cuDeviceGet(&device,0); CUcontext ctx; cuCtxCreate(&ctx,0,device); CUmodule mod; cuModuleLoad(&mod,"kernel.ptx"); CUfunction func; cuModuleGetFunction(&func,mod,"kernel"); CUdev
CUdevice device;
cuDeviceGet(&device,0);
CUcontext ctx;
cuCtxCreate(&ctx,0,device);
CUmodule mod;
cuModuleLoad(&mod,"kernel.ptx");
CUfunction func;
cuModuleGetFunction(&func,mod,"kernel");
CUdeviceptr ints;
cuMemAlloc(&ints,(sizeof(int)*30));
但是,在编译时,我会遇到以下错误:
1>kernel.cu.obj : error LNK2019: unresolved external symbol _cuDeviceGet@8 referenced in function _main
1>kernel.cu.obj : error LNK2019: unresolved external symbol _cuCtxCreate_v2@12 referenced in function _main
1>kernel.cu.obj : error LNK2019: unresolved external symbol _cuModuleLoad@8 referenced in function _main
1>kernel.cu.obj : error LNK2019: unresolved external symbol _cuModuleGetFunction@12 referenced in function _main
1>kernel.cu.obj : error LNK2019: unresolved external symbol _cuMemAlloc_v2@8 referenced in function _main
1>kernel.cu.obj : error LNK2019: unresolved external symbol _cuMemcpyHtoD_v2@12 referenced in function _main
1>kernel.cu.obj : error LNK2019: unresolved external symbol _cuMemcpyDtoH_v2@12 referenced in function _main
1>kernel.cu.obj : error LNK2019: unresolved external symbol _cuLaunchKernel@44 referenced in function _main
我在VS2012中创建了一个新的CUDA 5.5项目,并将其直接输入到生成的.cu文件中,但在编译时我遇到了这些错误。如果我做的测试不使用驱动程序api,我不会得到任何错误 这些错误发生在您没有链接到
cuda.lib
时,对于像我这样不知道如何将cuda.lib添加到链接过程中的人(使用VS2017),这些错误发生在您没有链接到cuda.lib时:
右键单击项目,转到菜单底部的属性
转到链接器-->输入
在附加依赖项
中,确保存在cuda.lib
。在我的例子中,这解决了2019链接错误
此外,如果单击下拉菜单中的编辑
项,则会出现一个宏
按钮,您可以单击该按钮查看VS项目中的所有预定义宏
对于像我这样不知道如何将cuda.lib
添加到链接过程中的人(使用VS2017):
右键单击项目,转到菜单底部的属性
转到链接器-->输入
在附加依赖项
中,确保存在cuda.lib
。在我的例子中,这解决了2019链接错误
此外,如果单击下拉菜单中的编辑
项,则会出现一个宏
按钮,您可以单击该按钮查看VS项目中的所有预定义宏
请不要使用pastebin。编辑问题本身中的相关信息。签出此链接:。关键是要正确设置VisualStudio。cuda安装程序(至少是最新的安装程序)会在安装时自动执行此操作。在该链接中给出的代码将毫无问题地编译!我在想链接器有问题,但我似乎找不到任何东西。你链接的是cuda.lib吗?@LucasS:也许你可以把这个作为问题的答案(它可以回答你自己的问题)。这样,问题就从未回答的队列中消失,为下一个有此问题的人留下一个干净的解决方案。请不要使用pastebin。编辑问题本身中的相关信息。签出此链接:。关键是要正确设置VisualStudio。cuda安装程序(至少是最新的安装程序)会在安装时自动执行此操作。在该链接中给出的代码将毫无问题地编译!我在想链接器有问题,但我似乎找不到任何东西。你链接的是cuda.lib吗?@LucasS:也许你可以把这个作为问题的答案(它可以回答你自己的问题)。这样,问题就从未回答的队列中消失,并为下一个有此问题的人留下一个干净的解决方案。