2

我在链接器中有错误

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

我在这里看到了类似的问题: 初学者CUDA程序中未解析的外部符号 但它已经将此信息添加到链接器中。

那么问题出在哪里?我将 Visual Studio 2010 Premium 与 CUDA SDK 5.0 和 Nsight 3.0 用于 VS

源代码在这里: 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++->设备->代码生成

计算_10,sm_10

计算_20,sm_20

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

4

1 回答 1

2

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

于 2012-12-16T19:42:47.890 回答