NVCC x64 can't find MS VC++ installation

NVCC Compiling…
nvcc fatal : nvcc cannot find a supported cl version. Only MSVC 8.0 and MSVC 9.0 are supported

But before x86 CUDA 2.1 version worked OK in the same environment.
All I changed - reinstalled CUDA 2.1 from x86 to x64.
What is wrong ?

ADDON:
BTW, x64 cl.exe located in AMD64 subdirectory - does nvcc know this and how to tell him this if it doesn’t know ?

NVCC Compiling…
nvcc fatal : nvcc cannot find a supported cl version. Only MSVC 8.0 and MSVC 9.0 are supported

But before x86 CUDA 2.1 version worked OK in the same environment.
All I changed - reinstalled CUDA 2.1 from x86 to x64.
What is wrong ?

ADDON:
BTW, x64 cl.exe located in AMD64 subdirectory - does nvcc know this and how to tell him this if it doesn’t know ?

nvcc is retarded when it comes to the x86_64 cl.exe. You have to give it the location to the 32-bit cl.exe with the -ccbin argument from which it somehow figures out where the x86_64 cl.exe is.

I’ve been asking for this to be fixed since CUDA 2.0 beta so long ago. tmurray at NVIDIA listens, but apperently nobody who works on that part of the compiler does (or just doesn’t have time to fix it).

nvcc is retarded when it comes to the x86_64 cl.exe. You have to give it the location to the 32-bit cl.exe with the -ccbin argument from which it somehow figures out where the x86_64 cl.exe is.

I’ve been asking for this to be fixed since CUDA 2.0 beta so long ago. tmurray at NVIDIA listens, but apperently nobody who works on that part of the compiler does (or just doesn’t have time to fix it).

Maybe I did something wrong, but it didn’t help. :wacko:

Added

-ccbin “P:\bin\Microsoft Visual Studio 8\VC\bin”

to NVCC command line inside project options.

And recived the same error:

NVCC Compiling…

nvcc fatal : nvcc cannot find a supported cl version. Only MSVC 8.0 and MSVC 9.0 are supported

Well, I installed CUDA 2.0 x64 - the same error but MSVC 7.1 and 8.0 mentioned instead of 8.0 and 9.0

After that I changed target platform to Win32 (!) and NVCC started to work!
It compiled all .cu files to .obj.
BUT now all other part of project was compiled by 32-bit cl.exe of course.
So I got
fatal error LNK1112: module machine type ‘x64’ conflicts with target machine type ‘X86’
on link stage.

But now I perhaps can store these x64 objs and link re-compiled with x64 cl.exe rest of project to these x64 object files. Maybe it will work even, but it’s WEIRD way to do x64 builds anyway! External Image
Any comments from nvcc devs on this topic?