我使用的是 CUDA 5.5,我的编译器是 VC2012。我的项目包含 2 个 .cu 文件。我需要使用动态并行,所以我启用了“生成可重定位设备代码”选项。启用此选项后,我会收到以下链接错误:
error LNK2001: unresolved external symbol __fatbinwrap_54_tmpxft_0000110c_00000000_8_cuda_device_runtime_cpp1_ii_5f6993ef
如果我关闭该选项,错误就会消失。该错误不取决于文件的内容 - 如果我注释掉其中的所有内容(#if 0 .... #endif
以便它们本质上是空文件),我仍然会收到相同的错误。
更新:我安装了 VC2010,我仍然得到完全相同的错误信息!
更新 2:我对这整件事感到非常厌倦,所以我从 SDK 示例 (cdpSimplePrint) 中获取了一个来自 VC2010 的动态并行示例项目,替换了其中的文件并进行了编译。问题消失了。试图比较两个项目之间的设置,但我找不到任何东西。我不知道是什么原因造成的,但坦率地说,在这个阶段我已经不在乎了,只要我有解决方法。