Ошибка связывания CUDA Visual Studio 2008 - PullRequest
0 голосов
/ 29 сентября 2010

Привет, я получаю следующую ошибку Linking при компиляции ConvolutionFFT2D из CUDA src

1>------ Rebuild All started: Project: FinalTest, Configuration: Release Win32 ------

1>Deleting intermediate and output files for project 'FinalTest', configuration        
'Release|Win32'

1>Compiling with CUDA Build Rule...

1>"C:\CUDA\bin\nvcc.exe"    -ccbin "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin"     -I"C:\CUDA\include" -I"./" -I"../../common/inc" -I"../../../shared/inc"  -Xcompiler "/EHsc /W3 /nologo /O2 /Zi   /MT  " -maxrregcount=32  -gencode=arch=compute_10,code=\"sm_10,compute_10\" -gencode=arch=compute_20,code=\"sm_20,compute_20\"  --compile -o "Release\convolutionFFT2D.cu.obj" "c:\Documents and Settings\All Users\Application Data\NVIDIA Corporation\NVIDIA GPU Computing SDK\C\src\convolutionFFT2D\convolutionFFT2D.cu" 

1>convolutionFFT2D.cu

1>tmpxft_00000a5c_00000000-6_convolutionFFT2D.compute_10.cudafe1.gpu

1>tmpxft_00000a5c_00000000-10_convolutionFFT2D.compute_10.cudafe2.gpu

1>convolutionFFT2D.cu

1>tmpxft_00000a5c_00000000-3_convolutionFFT2D.compute_20.cudafe1.gpu

1>tmpxft_00000a5c_00000000-14_convolutionFFT2D.compute_20.cudafe2.gpu

1>convolutionFFT2D.cu

1>tmpxft_00000a5c_00000000-6_convolutionFFT2D.compute_10.cudafe1.cpp

1>tmpxft_00000a5c_00000000-20_convolutionFFT2D.compute_10.ii

1>Compiling...

1>convolutionFFT2D_gold.cpp

1>main.cpp

1>Linking...

1>main.obj : error LNK2001: unresolved external symbol _cufftExecR2C@12

1>main.obj : error LNK2001: unresolved external symbol _cufftExecC2R@12

1>main.obj : error LNK2001: unresolved external symbol _cufftPlan2d@16

1>main.obj : error LNK2001: unresolved external symbol _cufftDestroy@4

1>C:\Documents and Settings\Administrator\My Documents\Visual Studio 
2008\Projects\FinalTest\Release\FinalTest.exe : fatal error LNK1120: 4 unresolved externals

1>Build log was saved at "file://c:\Documents and Settings\Administrator\My Documents\Visual Studio 2008\Projects\FinalTest\FinalTest\Release\BuildLog.htm"

1>FinalTest - 5 error(s), 0 warning(s)
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========

c / c ++ -> генерация кода -> библиотека времени выполнения установлена ​​на MT в выпуске и MTd в режиме отладки.

Какие-либо входы?

EDIT: Добавьте cufft.lib в Linker-> Input-> Additional Dependencies ..... И он будет работать нормально

Ответы [ 2 ]

1 голос
/ 08 января 2011

Добавьте cufft.lib в Linker-> Input-> Additional Dependencies ..... И все будет работать нормально

0 голосов
/ 30 сентября 2010

Поскольку ваше решение было отредактировано, вам просто нужно добавить cufft.lib к вашим дополнительным зависимостям. Поскольку вы компилируете Visual Studio, вы можете использовать прагму:

#pragma comment ( lib, "cufft.lib" )

Затем вы можете управлять этим с помощью других вещей, таких как

#if USE_CUDA_FFT && (defined(WIN32) || defined(WIN64))

#pragma comment ( lib, "cufft.lib" )

#endif

Я использую подобные ключи для поддержки условной компиляции в Linux (с gcc), а также в Windows (VS '05 / '08 / '10) с использованием тех же исходных файлов.

...