On Oct 22, 11:08 ¨Âí¬ ¢ÊïèÔ®¼êïè®®®Àãèáòôåò®îåô¾ ÷òïôåº > Daniel Berger wrote: > > Hi, > > > <snip> > > >> 'nmake' is not recognized as an internal or external command, > >> operable program or batch file. > > > Looks like eventmachine is a C extension. You either don't have a > > compiler installed, or your shell's environment isn't setup right. > > Therefore, it fails. > > > Or did I miss the point of your question somehow? > > > Regards, > > > Dan > > Whoops...forgot to mention.. I do have (various version) of Visual > Studio loaded - VS 6, VS 2003, VS 2005, VS 2008. I've tried with each > versions of VSVARS32.bat, which sets the env vars for the various > environments. > > This is the error, for eventmachine, after running the VSVARS32.bat: > > ERROR: ¨Âèéìå åøåãõôéîçå®®¨ÇåíººÉîóôáììåòººÅøôåîóéïîÂõéìäÅòòïò> ERROR: Failed to build gem native extension. > > c:/ruby/bin/ruby.exe extconf.rb update eventmachine > checking for windows.h... yes > checking for winsock.h... yes > checking for main() in kernel32.lib... yes > checking for main() in rpcrt4.lib... yes > checking for main() in gdi32.lib... yes > checking for main() in ssleay32.lib... no > creating Makefile > > nmake > > Microsoft (R) Program Maintenance Utility Version 6.00.8168.0 > Copyright (C) Microsoft Corp 1988-1998. All rights reserved. > > cl -I. -I. -Ic:/ruby/lib/ruby/1.8/i386-mswin32 -I. -MD -Zi > -O2b2xg- -G6 > -DHAVE_WINDOWS_H -DHAVE_WINSOCK_H D OS_WIN32 -D BUILD_FOR_RUBY -EHs > -GR -D WI > HOUT_SSL -c -Tpbinder.cpp > Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for > 80x86 > Copyright (C) Microsoft Corp 1984-1998. All rights reserved. > > binder.cpp > cl -I. -I. -Ic:/ruby/lib/ruby/1.8/i386-mswin32 -I. -MD -Zi > -O2b2xg- -G6 > -DHAVE_WINDOWS_H -DHAVE_WINSOCK_H D OS_WIN32 -D BUILD_FOR_RUBY -EHs > -GR -D WI > HOUT_SSL -c -Tpcmain.cpp > Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for > 80x86 > Copyright (C) Microsoft Corp 1984-1998. All rights reserved. > > cmain.cpp > cl -I. -I. -Ic:/ruby/lib/ruby/1.8/i386-mswin32 -I. -MD -Zi > -O2b2xg- -G6 > -DHAVE_WINDOWS_H -DHAVE_WINSOCK_H D OS_WIN32 -D BUILD_FOR_RUBY -EHs > -GR -D WI > HOUT_SSL -c -Tpcplusplus.cpp > Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for > 80x86 > Copyright (C) Microsoft Corp 1984-1998. All rights reserved. > > cplusplus.cpp > cl -I. -I. -Ic:/ruby/lib/ruby/1.8/i386-mswin32 -I. -MD -Zi > -O2b2xg- -G6 > -DHAVE_WINDOWS_H -DHAVE_WINSOCK_H D OS_WIN32 -D BUILD_FOR_RUBY -EHs > -GR -D WI > HOUT_SSL -c -Tped.cpp > Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for > 80x86 > Copyright (C) Microsoft Corp 1984-1998. All rights reserved. > > ed.cpp > cl -I. -I. -Ic:/ruby/lib/ruby/1.8/i386-mswin32 -I. -MD -Zi > -O2b2xg- -G6 > -DHAVE_WINDOWS_H -DHAVE_WINSOCK_H D OS_WIN32 -D BUILD_FOR_RUBY -EHs > -GR -D WI > HOUT_SSL -c -Tpem.cpp > Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for > 80x86 > Copyright (C) Microsoft Corp 1984-1998. All rights reserved. > > em.cpp > em.cpp(1193) : error C2374: 'i' : redefinition; multiple initialization > em.cpp(1186) : see declaration of 'i' > NMAKE : fatal error U1077: 'cl' : return code '0x2' > Stop. Hm. I had to make one (seemingly unrelated) tweak to em.cpp to build eventmachine 0.12.2 with VC++ 8 on Windows XP Pro: --- em.orig Wed Oct 22 11:13:48 2008 +++ em.cpp Wed Oct 22 11:20:48 2008 @@ -31,6 +31,9 @@ #ifdef OS_WIN32 unsigned gTickCountTickover; unsigned gLastTickCount; +#ifndef EINTR +#define EINTR WSAEINTR +#endif #endif After I made that change it seemed to build fine. In any case, it's not a gem issue, but an issue with eventmachine. I noticed they aren't shipping a gem with a pre-built binary with the latest release, which would definitely be handy for the Windows users. Regards, Dan