How nvcc detect that cl.exe is MSVC 7.1 or 8 ? cl.exe in the PATH but nvcc fails

Microsoft ® 32-bit C/C++ Optimizing Compiler Version 13.10.3077 for 80x86
Copyright © Microsoft Corporation 1984-2002. All rights reserved.

usage: cl [ option… ] filename… [ /link linkoption… ]

nvcc -ccbin “E:\Program Files\Microsoft Visual C++ Toolkit 2003\bin” /?
nvcc fatal : nvcc cannot find a supported cl version. Only MSVC 7.1 and MSVC 8.
0 are supported

dir “E:\Program Files\Microsoft Visual C++ Toolkit 2003\bin\cl*”
Le volume dans le lecteur E s’appelle Disque local
Le numéro de série du volume est 1C96-5F56

Répertoire de E:\Program Files\Microsoft Visual C++ Toolkit 2003\bin

18/03/2003 21:37 86Â 016 cl.exe
15/03/2003 02:46 145 cl.exe.config
2 fichier(s) 86Â 161 octets
0 Rép(s) 2 013 759 488 octets libres

C:\Program Files\NVIDIA Corporation\NVIDIA CUDA SDK\bin\win32\EmuRelease

Is it forbidden to have nvcc on a drive l(C:\CUDA\bin\nvcc.exe) and the “native” compiler on another one ?

I have written a bat to initialise some environment variables (the compiler and Platform SDK are on the E: disk) :

echo %PATH%
C:\CUDA\bin;C:\Python25\Scripts;C:\Python25;C:\Python25\Dlls;E:\Program Files\Mi
crosoft Visual C++ Toolkit 2003\bin;E:\Program Files\Microsoft SDK\Bin;E:\Progra
m Files\Microsoft.NET\SDK\v1.1\Bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\Sys

echo %LIB%
C:\CUDA\lib;E:\Program Files\Microsoft SDK\Lib;E:\Program Files\Microsoft Visual
Studio .NET 2003\Vc7\lib;E:\Program Files\Microsoft Visual C++ Toolkit 2003\lib

echo %INCLUDE%
C:\CUDA\include;E:\Program Files\Microsoft SDK\include;E:\Program Files\Microsof
t Visual C++ Toolkit 2003\include

It seems that the nvcc does not read the registry, so can we have the precise list of environment variables which are checked ? other source of information ?
What criteria is used to decide that the cl.exe in the PATH is not MSVC 7.1/8.0 ?


Yes, I keep getting this error too. Any idea why?