2013-06-05 226 views
2

我得到这个每当我试图建立我的项目:未知nvlink错误

make all 
Building target: CudaMaster 
Invoking: NVCC Linker 
nvcc --relocatable-device-code=true -gencode arch=compute_35,code=sm_35 -link -o "CudaMaster" ./Demodulator.o ./DifferentialDecoder.o ./Downsampler.o ./FileReader.o ./Filter.o ./GPURuntimeMetric.o ./Kernels.o ./PreambleDetector.o ./SampleComparator.o ./Samples.o ./TestBench.o ./main.o 
nvlink error : Undefined reference to 'cudaGetParameterBuffer' 
nvlink error : Undefined reference to 'cudaLaunchDevice' 
nvlink error : Undefined reference to 'cudaDeviceSynchronize' 
make: *** [CudaMaster] Error 255 

我硬是不知道为什么。我正在使用Eclipse的Nsight插件,并在RHEL Server 6.3中使用CUDA 5工具包和Tesla K20 GPGPU。我也在使用动态并行,我认为这是造成这个问题的原因。我搜索了四周,发现了this,我认为这证实了我的理论,但他是从终端上做的,所以它不完全一样。在使用Eclipse时需要做些什么来构建它?有没有我缺少的选项需要设置或什么?

谢谢!

+3

将'-lcudadevrt'添加到您的命令行 –

回答

4

动态并行工作,你需要在nsight对cudadevrt

链接你那样做:

  • 转到Project菜单 - >属性 - >生成 - >设置 - >工具设置 - > NVCC接头

  • 追加 “-lcudadevrt” 到 “命令”(即 “NVCC -lcudadevrt”)

的串210