gem install error – ‘cl’ is not recognized as an internal or external command

UPDATE: See my new blog post on the issue

If you’re here,  you are probably getting an error like this during a gem install on a windows box.

cl -c  -nologo -O1 -MD -Zi -DNDEBUG -DWIN32 -D_CONSOLE -DNO_STRICT -DHAV
O1 -MD -Zi -DNDEBUG    -DVERSION=\”6.4\”  -DXS_VERSION=\”6.4\”  -IC:\Perl\lib\CO
RE  BitVector.c
‘cl’ is not recognized as an internal or external command,
operable program or batch file.
NMAKE :  U1077:

The fix is easy if you have visual studio or the .NET SDK installed.

If you don’t then either go download Visual Studio Express or the .NET SDK (anyone out of 1.1, 2.0 or 3.5 should do)

Now, do a search on your local machine for ‘cl.exe’

I use the phenomenal windows desktop search engine locate32), here were the results I got.

Now all I had to do was use the nifty windows Path Editor “Path Ed” to add one of those paths to the system path variable

and that error goes away.

Only to be replaced by an even more cryptic one in my case
(I was trying to install passenger … I know I can’t, but I thought I’d try)