CUDA 5.0错误LNK2001:cuda方法的未解析外部符号

时间:2012-12-16 11:24:39

标签: c++ linker cuda nsight

我在链接器中有错误

1>ManifestResourceCompile:
1>  All outputs are up-to-date.
1>kernel.cu.obj : error LNK2001: unresolved external symbol _cudaMalloc@8
1>kernel.cu.obj : error LNK2001: unresolved external symbol _cudaFree@4

我在这里看到类似的问题: Unresolved external symbols in beginners CUDA program 但它已经将此信息添加到链接器。

问题出在哪里? 我正在使用带有CUDA SDK 5.0的Visual Studio 2010 Premium和用于VS的Nsight 3.0

源代码:http://pastebin.com/DfdfSfWd (这是Visual Studio为CUDA 5.0创建的新项目生成的示例)

[编辑]

链接器的设置

  

配置属性 - >链接器 - >常规 - >其他库目录:

     

$(CudaToolkitLibDir)$(CUDA_LIB_PATH)$(CUDA_PATH)\ lib \ $(PlatformName)

     

配置属性 - >链接器 - >输入 - >附加依赖性

     

cuda.lib; cudart.lib;和其他的库..

但是在属性中我看到CUDA有自己的Linder,“CUDA Linker”并且没有设置

  

其他图书馆目录

  

其他依赖性

所以我设置了这个属性,但没有任何改变,链接器仍有问题。

[编辑]

好的,错误是我改变时的错误

  

配置属性 - > CUDA C / C ++ - >设备 - >代码生成

  

compute_10,sm_10

  

compute_20,sm_20

并为CUDA C / C ++添加标志-dc

1 个答案:

答案 0 :(得分:2)

好的,我找到了如何设置单独编译的项目&链接,下面我们有一个项目示例: example simpleSeparateCompilation