Когда работает:
$ gem install watir
на Windows 7 (Cygwin) я получаю это
ERROR: Error installing watir:
ERROR: Failed to build gem native extension.
/usr/bin/ruby.exe extconf.rb
checking for ffi.h... no
checking for ffi.h in /usr/local/include,/usr/include/ffi... no
checking for rb_thread_blocking_region()... yes
checking for rb_thread_call_with_gvl()... yes
checking for rb_thread_call_without_gvl()... yes
checking for ffi_prep_cif_var()... no
creating extconf.h
creating Makefile
make
Configuring libffi
make -C "/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi-i386-cygwin"
make[1]: Entering directory `/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi-i386-cygwin'
make "AR_FLAGS=" "CC_FOR_BUILD=" "CFLAGS=-Wall -fexceptions" "CXXFLAGS=" "CFLAGS_FOR_BUILD=" "CFLAGS_FOR_TARGET=" "INSTALL=/usr/bin/install -c" "INSTALL_DATA=/usr/bin/install -c -m 644" "INSTALL_PROGRAM=/usr/bin/install -c" "INSTALL_SCRIPT=/usr/bin/install -c" "JC1FLAGS=" "LDFLAGS=" "LIBCFLAGS=" "LIBCFLAGS_FOR_TARGET=" "MAKE=make" "MAKEINFO=/bin/sh /usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/missing --run makeinfo " "PICFLAG=" "PICFLAG_FOR_TARGET=" "RUNTESTFLAGS=" "SHELL=/bin/sh" "exec_prefix=/usr/local" "infodir=/usr/local/share/info" "libdir=/usr/local/lib" "mandir=/usr/local/share/man" "prefix=/usr/local" "AR=ar" "AS=as" "CC=gcc" "CXX=g++" "LD=/usr/i686-pc-cygwin/bin/ld.exe" "NM=/usr/bin/nm -B" "RANLIB=ranlib" "DESTDIR=" all-recursive
make[2]: Entering directory `/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi-i386-cygwin'
Making all in include
make[3]: Entering directory `/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi-i386-cygwin/include'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi-i386-cygwin/include'
Making all in testsuite
make[3]: Entering directory `/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi-i386-cygwin/testsuite'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi-i386-cygwin/testsuite'
Making all in man
make[3]: Entering directory `/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi-i386-cygwin/man'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi-i386-cygwin/man'
make[3]: Entering directory `/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi-i386-cygwin'
restore=: && backupdir=".am$$" && \
am__cwd=`pwd` && CDPATH="${ZSH_VERSION+.}:" && cd /usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi && \
rm -rf $backupdir && mkdir $backupdir && \
if (/bin/sh /usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/missing --run makeinfo --version) >/dev/null 2>&1; then \
for f in /usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/doc/libffi.info /usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/doc/libffi.info-[0-9] /usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/doc/libffi.info-[0-9][0-9] /usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/doc/libffi.i[0-9] /usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/doc/libffi.i[0-9][0-9]; do \
if test -f $f; then mv $f $backupdir; restore=mv; else :; fi; \
done; \
else :; fi && \
cd "$am__cwd"; \
if /bin/sh /usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/missing --run makeinfo -I doc -I /usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/doc \
-o /usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/doc/libffi.info /usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/doc/libffi.texi; \
then \
rc=0; \
CDPATH="${ZSH_VERSION+.}:" && cd /usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi; \
else \
rc=$?; \
CDPATH="${ZSH_VERSION+.}:" && cd /usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi && \
$restore $backupdir/* `echo ".//usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/doc/libffi.info" | sed 's|[^/]*$||'`; \
fi; \
rm -rf $backupdir; exit $rc
/bin/sh ./libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi -I. -I/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/include -Iinclude -I/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/src -g -Wall -fexceptions -c -o src/debug.lo /usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/src/debug.c
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi -I. -I/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/include -Iinclude -I/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/src -g -Wall -fexceptions -c /usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/src/debug.c -DDLL_EXPORT -DPIC -o src/.libs/debug.o
/bin/sh ./libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi -I. -I/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/include -Iinclude -I/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/src -g -Wall -fexceptions -c -o src/prep_cif.lo /usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/src/prep_cif.c
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi -I. -I/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/include -Iinclude -I/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/src -g -Wall -fexceptions -c /usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/src/prep_cif.c -DDLL_EXPORT -DPIC -o src/.libs/prep_cif.o
/bin/sh ./libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi -I. -I/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/include -Iinclude -I/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/src -g -Wall -fexceptions -c -o src/types.lo /usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/src/types.c
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi -I. -I/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/include -Iinclude -I/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/src -g -Wall -fexceptions -c /usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/src/types.c -DDLL_EXPORT -DPIC -o src/.libs/types.o
/bin/sh ./libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi -I. -I/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/include -Iinclude -I/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/src -g -Wall -fexceptions -c -o src/raw_api.lo /usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/src/raw_api.c
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi -I. -I/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/include -Iinclude -I/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/src -g -Wall -fexceptions -c /usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/src/raw_api.c -DDLL_EXPORT -DPIC -o src/.libs/raw_api.o
/bin/sh ./libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi -I. -I/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/include -Iinclude -I/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/src -g -Wall -fexceptions -c -o src/java_raw_api.lo /usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/src/java_raw_api.c
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi -I. -I/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/include -Iinclude -I/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/src -g -Wall -fexceptions -c /usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/src/java_raw_api.c -DDLL_EXPORT -DPIC -o src/.libs/java_raw_api.o
/bin/sh ./libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi -I. -I/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/include -Iinclude -I/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/src -g -Wall -fexceptions -c -o src/closures.lo /usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/src/closures.c
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi -I. -I/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/include -Iinclude -I/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/src -g -Wall -fexceptions -c /usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/src/closures.c -DDLL_EXPORT -DPIC -o src/.libs/closures.o
/bin/sh ./libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi -I. -I/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/include -Iinclude -I/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/src -g -Wall -fexceptions -c -o src/x86/ffi.lo /usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/src/x86/ffi.c
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi -I. -I/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/include -Iinclude -I/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/src -g -Wall -fexceptions -c /usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/src/x86/ffi.c -DDLL_EXPORT -DPIC -o src/x86/.libs/ffi.o
/bin/sh ./libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi -I. -I/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/include -Iinclude -I/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/src -I. -I/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/include -Iinclude -I/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/src -c -o src/x86/win32.lo /usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/src/x86/win32.S
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi -I. -I/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/include -Iinclude -I/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/src -I. -I/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/include -Iinclude -I/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/src -c /usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/src/x86/win32.S -DDLL_EXPORT -DPIC -o src/x86/.libs/win32.o
/bin/sh ./libtool --tag=CC --mode=link gcc -g -Wall -fexceptions -version-info `grep -v '^#' /usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi/libtool-version` -no-undefined -bindir "/usr/local/bin" -o libffi.la -rpath /usr/local/lib src/debug.lo src/prep_cif.lo src/types.lo src/raw_api.lo src/java_raw_api.lo src/closures.lo src/x86/ffi.lo src/x86/win32.lo
libtool: link: gcc -shared src/.libs/debug.o src/.libs/prep_cif.o src/.libs/types.o src/.libs/raw_api.o src/.libs/java_raw_api.o src/.libs/closures.o src/x86/.libs/ffi.o src/x86/.libs/win32.o -o .libs/cygffi-5.dll -Wl,--enable-auto-image-base -Xlinker --out-implib -Xlinker .libs/libffi.dll.a
libtool: link: ( cd ".libs" && rm -f "libffi.la" && ln -s "../libffi.la" "libffi.la" )
/bin/sh ./libtool --tag=CC --mode=link gcc -g -Wall -fexceptions -o libffi_convenience.la src/debug.lo src/prep_cif.lo src/types.lo src/raw_api.lo src/java_raw_api.lo src/closures.lo src/x86/ffi.lo src/x86/win32.lo
libtool: link: rm -fr .libs/libffi_convenience.a(D)
libtool: link: ar cru .libs/libffi_convenience.a src/.libs/debug.o src/.libs/prep_cif.o src/.libs/types.o src/.libs/raw_api.o src/.libs/java_raw_api.o src/.libs/closures.o src/x86/.libs/ffi.o src/x86/.libs/win32.o
libtool: link: ranlib .libs/libffi_convenience.a
libtool: link: ( cd ".libs" && rm -f "libffi_convenience.la" && ln -s "../libffi_convenience.la" "libffi_convenience.la" )
make[3]: Leaving directory `/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi-i386-cygwin'
make[2]: Leaving directory `/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi-i386-cygwin'
make[1]: Leaving directory `/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi-i386-cygwin'
gcc -I. -I/usr/include/ruby-1.9.1/i386-cygwin -I/usr/include/ruby-1.9.1/ruby/backward -I/usr/include/ruby-1.9.1 -I. -I"/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi-i386-cygwin"/include -DRUBY_EXTCONF_H=\"extconf.h\" -ggdb -O2 -pipe -fno-strict-aliasing -mwin32 -o AbstractMemory.o -c AbstractMemory.c
gcc -I. -I/usr/include/ruby-1.9.1/i386-cygwin -I/usr/include/ruby-1.9.1/ruby/backward -I/usr/include/ruby-1.9.1 -I. -I"/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi-i386-cygwin"/include -DRUBY_EXTCONF_H=\"extconf.h\" -ggdb -O2 -pipe -fno-strict-aliasing -mwin32 -o ArrayType.o -c ArrayType.c
gcc -I. -I/usr/include/ruby-1.9.1/i386-cygwin -I/usr/include/ruby-1.9.1/ruby/backward -I/usr/include/ruby-1.9.1 -I. -I"/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi-i386-cygwin"/include -DRUBY_EXTCONF_H=\"extconf.h\" -ggdb -O2 -pipe -fno-strict-aliasing -mwin32 -o Buffer.o -c Buffer.c
gcc -I. -I/usr/include/ruby-1.9.1/i386-cygwin -I/usr/include/ruby-1.9.1/ruby/backward -I/usr/include/ruby-1.9.1 -I. -I"/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi-i386-cygwin"/include -DRUBY_EXTCONF_H=\"extconf.h\" -ggdb -O2 -pipe -fno-strict-aliasing -mwin32 -o Call.o -c Call.c
gcc -I. -I/usr/include/ruby-1.9.1/i386-cygwin -I/usr/include/ruby-1.9.1/ruby/backward -I/usr/include/ruby-1.9.1 -I. -I"/usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/libffi-i386-cygwin"/include -DRUBY_EXTCONF_H=\"extconf.h\" -ggdb -O2 -pipe -fno-strict-aliasing -mwin32 -o ClosurePool.o -c ClosurePool.c
In file included from /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:56,
from ClosurePool.c:38:
/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/psdk_inc/_fd_types.h:100:2: warning: #warning "fd_set and associated macros have been defined in sys/types. This can cause runtime problems with W32 sockets"
In file included from /usr/include/cygwin/sys_time.h:13,
from /usr/include/sys/time.h:61,
from /usr/include/ruby-1.9.1/ruby/missing.h:28,
from /usr/include/ruby-1.9.1/ruby/ruby.h:1381,
from /usr/include/ruby-1.9.1/ruby.h:32,
from ClosurePool.c:43:
/usr/include/sys/select.h:31: error: conflicting types for 'select'
/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:986: error: previous declaration of 'select' was here
/usr/include/sys/select.h:31: error: conflicting types for 'select'
/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:986: error: previous declaration of 'select' was here
Makefile:204: recipe for target `ClosurePool.o' failed
make: *** [ClosurePool.o] Error 1
Gem files will remain installed in /usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1 for inspection.
Results logged to /usr/lib/ruby/gems/1.9.1/gems/ffi-1.8.1/ext/ffi_c/gem_make.out
Я надеюсь, что это всего лишь пакет разработчика, который я еще не установил. Спасибо, что дали ему шанс.
Переполнение стека требует от меня написать немного больше, потому что там так много кода. Но правда заключается в том, что я уже слишком занят этим, поскольку я, как правило, являюсь разработчиком только для Unix. Я должен использовать Windows для этого, потому что веб-приложение, с которым я работаю, работает ТОЛЬКО в Internet Explorer, но не в Windows 8.
К вашему сведению, я использую 64-битное программное обеспечение на 64-битном оборудовании.