Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/148.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用CUDA驱动程序API VS2012时未解析的外部符号_C++_Visual Studio 2012_Cuda - Fatal编程技术网

C++ 使用CUDA驱动程序API VS2012时未解析的外部符号

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

我一直在尝试使用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");
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:也许你可以把这个作为问题的答案(它可以回答你自己的问题)。这样,问题就从未回答的队列中消失,并为下一个有此问题的人留下一个干净的解决方案。