[Rtk-users] Geometric phantom example on wiki

Yang K Park theday79 at gmail.com
Tue Aug 16 08:34:15 EDT 2016


Hi Andreas,

 

Thanks a lot for your help! 

Now I can recall what happened in my previous project.

I should have linked “cufft.lib” manually in the CMakeLists file. Now it works fine.

 

I believe this issue happens only in the old version of RTK and may have been fixed in the Nightly version.

(I have been too lazy to move on to a newer version, though.)

 

Thanks.

 

Yang

 

(To RTK staff: I’m sorry that I forgot to change the title even though this is a separate thread.)

 

From: andreasga22 at gmail.com [mailto:andreasga22 at gmail.com] On Behalf Of Andreas Gravgaard Andersen
Sent: Tuesday, August 16, 2016 4:21 AM
To: Yang-Kyun Park <theday79 at gmail.com>
Cc: rtk-users at public.kitware.com
Subject: Re: [Rtk-users] Geometric phantom example on wiki

 

Hi Yang, 
I had a similar problem when I was compiling your CBCT reconstruction software - I thought it was due me having a different version of CUDA.
I solved it by changing the cmakelists.txt to use a FindCuda_wrap.cmake and associated files (copied and slightly modified from the rtk one.) to let those files do the linking.
I also changed the CMakelists.txt to make it compile on non-cuda hardware, so I'm not completely sure whether this might have been the solution to that.

Attached in zip archive. :: My current CBCTrecon -> https://github.com/agravgaard/cbctrecon.git 

I have since changed the source to use the newest git version of RTK (keeping the OpenCL code in my own fork <https://github.com/agravgaard/RTK.git> ), but I don't think that made any difference in the linking. 

Best regards
Andreas

 

On 16 Aug 2016 6:04 am, "Yang K Park" <theday79 at gmail.com <mailto:theday79 at gmail.com> > wrote:

Hi all,

 

I used to use RTK r1.03 without any problem.

However, today I adapted rtkfdk to my own code and ran into the following compile error messages..

 

1>rtkcuda.lib(cuda_compile_generated_rtkCudaFFTRampImageFilter.cu.obj) : error LNK2019: unresolved external symbol cufftPlan2d referenced in function "void __cdecl CUDA_fft_convolution(struct int3 const &,struct int2 const &,float *,struct float2 *)" (?CUDA_fft_convolution@@YAXAEBUint3@@AEBUint2@@PEAMPEAUfloat2@@@Z)

1>rtkcuda.lib(cuda_compile_generated_rtkCudaFFTRampImageFilter.cu.obj) : error LNK2019: unresolved external symbol cufftPlan3d referenced in function "void __cdecl CUDA_fft_convolution(struct int3 const &,struct int2 const &,float *,struct float2 *)" (?CUDA_fft_convolution@@YAXAEBUint3@@AEBUint2@@PEAMPEAUfloat2@@@Z)

1>rtkcuda.lib(cuda_compile_generated_rtkCudaFFTRampImageFilter.cu.obj) : error LNK2019: unresolved external symbol cufftExecR2C referenced in function "void __cdecl CUDA_fft_convolution(struct int3 const &,struct int2 const &,float *,struct float2 *)" (?CUDA_fft_convolution@@YAXAEBUint3@@AEBUint2@@PEAMPEAUfloat2@@@Z)

1>rtkcuda.lib(cuda_compile_generated_rtkCudaFFTRampImageFilter.cu.obj) : error LNK2019: unresolved external symbol cufftExecC2R referenced in function "void __cdecl CUDA_fft_convolution(struct int3 const &,struct int2 const &,float *,struct float2 *)" (?CUDA_fft_convolution@@YAXAEBUint3@@AEBUint2@@PEAMPEAUfloat2@@@Z)

1>rtkcuda.lib(cuda_compile_generated_rtkCudaFFTRampImageFilter.cu.obj) : error LNK2019: unresolved external symbol cufftSetCompatibilityMode referenced in function "void __cdecl CUDA_fft_convolution(struct int3 const &,struct int2 const &,float *,struct float2 *)" (?CUDA_fft_convolution@@YAXAEBUint3@@AEBUint2@@PEAMPEAUfloat2@@@Z)

1>rtkcuda.lib(cuda_compile_generated_rtkCudaFFTRampImageFilter.cu.obj) : error LNK2019: unresolved external symbol cufftDestroy referenced in function "void __cdecl CUDA_fft_convolution(struct int3 const &,struct int2 const &,float *,struct float2 *)" (?CUDA_fft_convolution@@YAXAEBUint3@@AEBUint2@@PEAMPEAUfloat2@@@Z)

 

I found that this error was caused by the following line in my code:

 

#if CUDA_FOUND

        feldkamp = FDKCUDAType::New(); <-- here!

        SET_FELDKAMP_OPTIONS(static_cast<FDKCUDAType*>(feldkamp.GetPointer()));

#else

..

I also found that those problematic symbols (cufftPlan2d, cufftPlan3d, cufftExecR2C, ..) are defined in “cufft.h”.

 

It is very weird to me because I did the exactly same thing in my previous project and there was no problem at that time.

Maybe I did something wrong but have no idea now.

 

Any helps/suggestions will be highly appreciated!

 

Regards,

Yang 


_______________________________________________
Rtk-users mailing list
Rtk-users at public.kitware.com <mailto:Rtk-users at public.kitware.com> 
http://public.kitware.com/mailman/listinfo/rtk-users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/rtk-users/attachments/20160816/3e2fb1d8/attachment-0010.html>


More information about the Rtk-users mailing list