我正在使用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的动态并行示例项目,替换了其中的文件并进行了编译。问题消失了。试图比较两个项目之间的设置,但我找不到任何东西。 我不知道是什么导致它,但坦率地说,在这个阶段我不在乎,只要我有一个解决方法。
答案 0 :(得分:2)
检查您是否与cudadevrt库链接,请参阅CUDA Dynamic Parallelism Programming Guide中的“编译和链接”部分以获取更多信息。