【发布时间】:2011-07-27 10:59:27
【问题描述】:
我正在尝试编译 Joe Stam 的以下代码(convolutionapproaches,使用 vs2005 的项目,我使用的是 VS2010 但使用 9.0 引擎编译)
1>ConvolutionCudaFunctions.obj:错误 LNK2019:未解析的外部符号 _cudaEventDestroy@4 在函数“float _cdecl”中引用 NaiveGlobalConvolution(无符号字符 *,无符号字符 *,无符号整数,无符号整数,无符号 整数,整数,整数)" (?NaiveGlobalConvolution@@YAMPAE0IIIHH@Z) 1>main.obj:错误 LNK2001:未解决 外部符号 _cudaEventDestroy@4 1>ConvolutionCudaFunctions.obj:错误 LNK2019:未解析的外部符号 _cudaEventElapsedTime@12 在函数“float _cdecl”中引用 NaiveGlobalConvolution(无符号字符 *,无符号字符 *,无符号整数,无符号整数,无符号 整数,整数,整数)" (?NaiveGlobalConvolution@@YAMPAE0IIIHH@Z) 1>main.obj:错误 LNK2001:未解决 外部符号 _cudaEventElapsedTime@12 1>ConvolutionCudaFunctions.obj:错误 LNK2019:未解析的外部符号 _cudaEventSynchronize@4 在函数“float _cdecl”中引用 NaiveGlobalConvolution(无符号字符 *,无符号字符 *,无符号整数,无符号整数,无符号 整数,整数,整数)" (?NaiveGlobalConvolution@@YAMPAE0IIIHH@Z) 1>main.obj:错误 LNK2001:未解决 外部符号 _cudaEventSynchronize@4 1>ConvolutionCudaFunctions.obj:错误 LNK2019:未解析的外部符号 _cudaGetLastError@0 在函数“float _cdecl”中引用 NaiveGlobalConvolution(无符号字符 *,无符号字符 *,无符号整数,无符号整数,无符号 整数,整数,整数)" (?NaiveGlobalConvolution@@YAMPAE0IIIHH@Z) 1>ConvolutionCudaFunctions.obj:错误 LNK2019:未解析的外部符号 _cudaConfigureCall@32 在函数“float _cdecl”中引用 NaiveGlobalConvolution(无符号字符 *,无符号字符 *,无符号整数,无符号整数,无符号 整数,整数,整数)" (?NaiveGlobalConvolution@@YAMPAE0IIIHH@Z) 1>ConvolutionCudaFunctions.obj:错误 LNK2019:未解析的外部符号 _cudaEventRecord@8 在函数“float _cdecl”中引用 NaiveGlobalConvolution(无符号字符 *,无符号字符 *,无符号整数,无符号整数,无符号 整数,整数,整数)" (?NaiveGlobalConvolution@@YAMPAE0IIIHH@Z) 1>main.obj:错误 LNK2001:未解决 外部符号 _cudaEventRecord@8 1>ConvolutionCudaFunctions.obj:错误 LNK2019:未解析的外部符号 _cudaEventCreate@4 在函数“float _cdecl”中引用 NaiveGlobalConvolution(无符号字符 *,无符号字符 *,无符号整数,无符号整数,无符号 整数,整数,整数)" (?NaiveGlobalConvolution@@YAMPAE0IIIHH@Z) 1>main.obj:错误 LNK2001:未解决 外部符号 _cudaEventCreate@4 1>ConvolutionCudaFunctions.obj:错误 LNK2019:未解析的外部符号 _cudaMemset@12 在函数“float _cdecl”中引用 NaiveGlobalConvolution(无符号字符 *,无符号字符 *,无符号整数,无符号整数,无符号 整数,整数,整数)" (?NaiveGlobalConvolution@@YAMPAE0IIIHH@Z) 1>ConvolutionCudaFunctions.obj:错误 LNK2019:未解析的外部符号 _cudaSetupArgument@12 在函数“void _cdecl”中引用 device_stub__Z28NaiveGlobalConvolutionKernelPhS_jjjf(unsigned 字符 *,无符号 字符 *,无符号 整数,无符号整数,无符号整数,浮点数)" (?__device_stub__Z28NaiveGlobalConvolutionKernelPhS_jjjf@@YAXPAE0IIIM@Z) 1>ConvolutionCudaFunctions.obj:错误 LNK2019:未解析的外部符号 ___cudaRegisterVar@32 在函数“void _cdecl”中引用 _sti_cudaRegisterAll_59_tmpxft_00000a3c_00000000_3_ConvolutionCudaFunctions_cpp1_ii_imgTex(void)" (?sti__cudaRegisterAll_59_tmpxft_00000a3c_00000000_3_ConvolutionCudaFunctions_cpp1_ii_imgTex@@YAXXZ) 1>ConvolutionCudaFunctions.obj:错误 LNK2019:未解析的外部符号 ___cudaRegisterTexture@28 在函数 "void _cdecl
中引用
...很多其他错误...
1>Debug/ConvTest.exe:致命错误 LNK1120:35 个未解决的外部问题
这与 /MDd 用于代码生成和 CUDA C/C++ 运行时主机库。
如果我切换到 /MTd 两者都是一样的。
这有什么问题? 32位和64位的SDK我都试过了,工具包是6
【问题讨论】:
-
你链接到 cudart.lib 了吗?
-
看起来它没有找到正确的 cudart 库。你是如何链接的?什么参数?可以编译SDK吗?你用的是什么规则?
-
我可以编译sdk,并且链接了cudart.lib,我安装了64位版本的工具包,sdk在32/64版本中都不起作用