代码在vs 2008中以调试模式编译,而不是在发布模式下编译

时间:2011-12-28 20:39:28

标签: visual-studio-2008 cuda

我的cuda代码在调试模式下编译,但不在发布模式下编译。当我只是将模式更改为release并命中compile时,我得到以下链接器错误:

Error   16  error LNK2001: unresolved external symbol _cudaConfigureCall@32 JGJJSMJMDJLMOMpartition.cu.obj
Error   17  error LNK2001: unresolved external symbol _cudaGetErrorString@4 JGJJSMJMDJLMOMpartition.cu.obj
Error   18  error LNK2001: unresolved external symbol _cudaEventElapsedTime@12  JGJJSMJMDJLMOMpartition.cu.obj
Error   19  error LNK2001: unresolved external symbol _cudaEventSynchronize@4   JGJJSMJMDJLMOMpartition.cu.obj
Error   20  error LNK2001: unresolved external symbol _cudaEventRecord@8    JGJJSMJMDJLMOMpartition.cu.obj
Error   21  error LNK2001: unresolved external symbol _cudaEventCreate@4    JGJJSMJMDJLMOMpartition.cu.obj
Error   22  error LNK2001: unresolved external symbol _cudaThreadSynchronize@0  JGJJSMJMDJLMOMpartition.cu.obj

关于如何解决这个问题的任何想法?

2 个答案:

答案 0 :(得分:3)

查看您在调试版本中使用的库列表,并确保它们(或其发行版本等)包含在发布版本中。

在发布模式下检查库路径是否正确

确保发布库存在且位于正确的目录中

答案 1 :(得分:0)

我最近在VS 2010中遇到过这种情况。我发现了

$(CudaToolkitLibdir)\cudart.lib
发布版本的Linker> Additional Dependencies项目属性中缺少

。我很困惑为什么会出现这种情况,因为它是VS 2010和CUDA ToolKit 5.0的全新安装。

CUDA Toolkit安装程序是否负责修改cudart.lib之类的VS2010依赖项?我当然没有手动安装调试模式的cudart.bin依赖项。似乎很奇怪安装程序会跳过Release版本。