I spend nearly all my time working on a Mac. Given the nature of cross-platform development I do sometimes require use of a Windows machine. Not too long ago I was upgrading to Visual Studio 2008 when I found a horrible bug in the installer.
I didn't want any Visual Basic or C# crap littering my machine. So I disabled those options, leaving only the C++ tools to be installed. Installation completed and I fired up the compiler only to get the following error message:
Compiling... Project : error PRJ0003 : Error spawning 'cl.exe'.
Uh.
That's not supposed to happen.
Let's take a closer look:
C:\Program Files\Microsoft Visual Studio 9.0\VC\bin>dir Volume in drive C has no label. Volume Serial Number is 104F-0033 Directory of C:\Program Files\Microsoft Visual Studio 9.0\VC\bin 04/05/2009 09:48 AM <DIR> . 04/05/2009 09:48 AM <DIR> .. 04/05/2009 09:46 AM <DIR> 1033 04/05/2009 09:48 AM <DIR> amd64 11/08/2007 08:19 AM 165,376 atlprov.dll 11/08/2007 08:19 AM 77,312 bscmake.exe 11/08/2007 08:19 AM 670,192 c1.dll 11/08/2007 08:19 AM 2,334,200 c1xx.dll 11/08/2007 08:19 AM 33,784 cvtres.exe 11/08/2007 08:19 AM 17,920 dumpbin.exe 11/08/2007 08:19 AM 17,920 editbin.exe 11/08/2007 08:19 AM 17,912 lib.exe 11/08/2007 08:19 AM 790,008 link.exe 06/05/2006 06:02 PM 268 link.exe.config 11/08/2007 08:19 AM 358,384 ml.exe 11/08/2007 08:19 AM 94,200 nmake.exe 11/08/2007 08:19 AM 20,480 undname.exe 03/07/2007 03:44 PM 31 vcvars32.bat 04/05/2009 09:48 AM <DIR> x86_amd64 11/08/2007 08:19 AM 40,448 xdcmake.exe 06/05/2006 06:02 PM 268 xdcmake.exe.config 16 File(s) 4,638,703 bytes 5 Dir(s) 12,399,824,896 bytes free
So, no C++ compiler with C++ installation. Perfect.
On the suggestion of a coworker I also installed the C# tools. Low and behold the C# tools included the C++ compiler, and my problems went away:
C:\Program Files\Microsoft Visual Studio 9.0\VC\bin>dir Volume in drive C has no label. Volume Serial Number is 104F-0033 Directory of C:\Program Files\Microsoft Visual Studio 9.0\VC\bin 04/05/2009 10:43 AM <DIR> . 04/05/2009 10:43 AM <DIR> .. 04/05/2009 09:46 AM <DIR> 1033 04/05/2009 09:48 AM <DIR> amd64 11/08/2007 08:19 AM 165,376 atlprov.dll 11/08/2007 08:19 AM 77,312 bscmake.exe 11/08/2007 08:19 AM 670,192 c1.dll 11/08/2007 08:19 AM 2,334,200 c1xx.dll 11/08/2007 08:19 AM 2,356,720 c2.dll 11/08/2007 08:19 AM 125,936 cl.exe 06/05/2006 06:02 PM 268 cl.exe.config 11/08/2007 08:19 AM 33,784 cvtres.exe 11/08/2007 08:19 AM 17,920 dumpbin.exe 11/08/2007 08:19 AM 17,920 editbin.exe 11/08/2007 08:19 AM 17,912 lib.exe 11/08/2007 08:19 AM 790,008 link.exe 06/05/2006 06:02 PM 268 link.exe.config 11/08/2007 08:19 AM 358,384 ml.exe 11/08/2007 08:19 AM 94,200 nmake.exe 11/08/2007 08:19 AM 20,480 undname.exe 03/07/2007 03:44 PM 31 vcvars32.bat 04/05/2009 09:48 AM <DIR> x86_amd64 11/08/2007 08:19 AM 40,448 xdcmake.exe 06/05/2006 06:02 PM 268 xdcmake.exe.config 19 File(s) 7,121,627 bytes 5 Dir(s) 12,437,422,080 bytes free
I find it fairly shocking that this configuration was never tested before the bits left Microsoft.
4 comments:
testing??? What's that?
--Jonathan
Thanx a million Rob, that horrible error cost me half a day at work! Damn Microsoft
Bah. This bit me, too. I will additionally note that the bin/amd64 and bin/x86_amd64 directories did contain cl.exe before installing C# (an aside: why do both of these directories exist?), just the 32-bit version in .../bin was missing. Thanks Microsoft @_@.
But a genuine thanks to you for this post!
This is another indicator that Microsoft is pushing all future development to .NET managed code and the super slow MSIL approach. The key concept in MSIL being that it is an "interpretative" code. They would like to see all native code abolished.
I had a VB6 (compiled to native) application the ran really fast. When ported to VB.NET it ran so slow that it became useless. Now I am porting it to C++ MFC native. This application produces output for industrial PLC programming that can be imported to various PLC manufacturer's software that only runs on Windows PCs, so I do not need the portability to MAC or other systems that MSIL might provide. I need the speed provided by native code.
.NET has some great features, but at too high a performance price.
I wish the original IBM PC had been built on Intel's RMX-86 operating system that was already designed for multiuser/multitasking with task priority and inter-task messaging. Then the PC would have had a great OS foundation from the start and Bill Gates would be another unknown college dropout. Intel would have made the billions from the sale of software instead of Microsoft, but Intel's high paid executives did not have the foresight enormous market for personal computers and wanted thousands of dollars for the distribution of RMX-86 which made it cost prohibitive for PCs. This is another example of why top executives are not worth their overpaid salaries, bonuses, and stock options.
Sorry for the ranting, but Microsoft should never have gotten off the ground if Intel had been half-"intel"igent, and we all would have had far superior PCs today.
Post a Comment