gpt4 book ai didi

rubygems - ffi gem 无法在 Cygwin 上构建 native 扩展

转载 作者:行者123 更新时间:2023-12-01 16:27:13 25 4
gpt4 key购买 nike

我需要安装最新版本的ffi (当前为 1.9.3)Cygwin 版本 2.844 上的 gem。我看到过有关 1.0.10 等过去版本无法在 Windows 系统上构建的报告,但此后已经发布了很多版本。

以下是完整的错误消息:

DL is deprecated, please use Fiddle
Building native extensions. This could take a while...
ERROR: Error installing ffi:
ERROR: Failed to build gem native extension.

/home/chris/.rubies/ruby-2.1.1/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 "DESTDIR=" clean

make "DESTDIR="
Configuring libffi
make -C "/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi-x86_64-cygwin"
make[1]: Entering directory '/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi-x86_64-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 /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/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/bin/ld" "NM=/usr/bin/nm -B" "RANLIB=ranlib" "DESTDIR=" all-recursive
make[2]: Entering directory '/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi-x86_64-cygwin'
Making all in include
make[3]: Entering directory '/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi-x86_64-cygwin/include'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi-x86_64-cygwin/include'
Making all in testsuite
make[3]: Entering directory '/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi-x86_64-cygwin/testsuite'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi-x86_64-cygwin/testsuite'
Making all in man
make[3]: Entering directory '/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi-x86_64-cygwin/man'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi-x86_64-cygwin/man'
make[3]: Entering directory '/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi-x86_64-cygwin'
restore=: && backupdir=".am$$" && \
am__cwd=`pwd` && CDPATH="${ZSH_VERSION+.}:" && cd /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi && \
rm -rf $backupdir && mkdir $backupdir && \
if (/bin/sh /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/missing --run makeinfo --version) >/dev/null 2>&1; then \
for f in /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/doc/libffi.info /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/doc/libffi.info-[0-9] /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/doc/libffi.info-[0-9][0-9] /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/doc/libffi.i[0-9] /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/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 /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/missing --run makeinfo -I doc -I /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/doc \
-o /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/doc/libffi.info /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/doc/libffi.texi; \
then \
rc=0; \
CDPATH="${ZSH_VERSION+.}:" && cd /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi; \
else \
rc=$?; \
CDPATH="${ZSH_VERSION+.}:" && cd /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi && \
$restore $backupdir/* `echo ".//home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/doc/libffi.info" | sed 's|[^/]*$||'`; \
fi; \
rm -rf $backupdir; exit $rc
/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/doc/libffi.texi:341: warning: missing name for @deftp
/bin/sh ./libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/include -Iinclude -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src -g -Wall -fexceptions -c -o src/debug.lo /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src/debug.c
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/include -Iinclude -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src -g -Wall -fexceptions -c /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/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/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/include -Iinclude -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src -g -Wall -fexceptions -c -o src/prep_cif.lo /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src/prep_cif.c
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/include -Iinclude -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src -g -Wall -fexceptions -c /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/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/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/include -Iinclude -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src -g -Wall -fexceptions -c -o src/types.lo /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src/types.c
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/include -Iinclude -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src -g -Wall -fexceptions -c /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/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/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/include -Iinclude -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src -g -Wall -fexceptions -c -o src/raw_api.lo /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src/raw_api.c
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/include -Iinclude -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src -g -Wall -fexceptions -c /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/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/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/include -Iinclude -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src -g -Wall -fexceptions -c -o src/java_raw_api.lo /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src/java_raw_api.c
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/include -Iinclude -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src -g -Wall -fexceptions -c /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/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/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/include -Iinclude -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src -g -Wall -fexceptions -c -o src/closures.lo /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src/closures.c
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/include -Iinclude -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src -g -Wall -fexceptions -c /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/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/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/include -Iinclude -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src -g -Wall -fexceptions -c -o src/x86/ffi.lo /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src/x86/ffi.c
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/include -Iinclude -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src -g -Wall -fexceptions -c /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/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/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/include -Iinclude -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/include -Iinclude -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src -c -o src/x86/win64.lo /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src/x86/win64.S
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/include -Iinclude -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src -I. -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/include -Iinclude -I/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src -c /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src/x86/win64.S -DDLL_EXPORT -DPIC -o src/x86/.libs/win64.o
/bin/sh ./libtool --tag=CC --mode=link gcc -g -Wall -fexceptions -version-info `grep -v '^#' /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/libtool-version` -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/win64.lo
libtool: link: warning: undefined symbols not allowed in x86_64-unknown-cygwin shared libraries
libtool: link: ar cru .libs/libffi.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/win64.o
libtool: link: ranlib .libs/libffi.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/win64.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/win64.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 '/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi-x86_64-cygwin'
make[2]: Leaving directory '/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi-x86_64-cygwin'
make[1]: Leaving directory '/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi-x86_64-cygwin'
compiling AbstractMemory.c
compiling ArrayType.c
compiling Buffer.c
compiling Call.c
compiling ClosurePool.c
compiling DataConverter.c
compiling DynamicLibrary.c
compiling ffi.c
compiling Function.c
Function.c: In function ‘callback_invoke’:
Function.c:479:9: warning: passing argument 1 of ‘rb_thread_call_with_gvl’ from incompatible pointer type [enabled by default]
rb_thread_call_with_gvl(callback_with_gvl, &cb);
^
Function.c:102:14: note: expected ‘void * (*)(void *)’ but argument is of type ‘VALUE (*)(void *)’
extern void *rb_thread_call_with_gvl(void *(*func)(void *), void *data1);
^
compiling FunctionInfo.c
compiling LastError.c
compiling LongDouble.c
compiling MappedType.c
compiling MemoryPointer.c
compiling MethodHandle.c
compiling Platform.c
compiling Pointer.c
compiling Struct.c
compiling StructByReference.c
compiling StructByValue.c
compiling StructLayout.c
compiling Thread.c
compiling Type.c
compiling Types.c
compiling Variadic.c
linking shared-object ffi_c.so
Call.o: In function `call_blocking_function':
/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/Call.c:294: undefined reference to `ffi_call'
/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/Call.c:294:(.text+0xa4): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `ffi_call'
Call.o: In function `rbffi_CallFunction':
/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/Call.c:378: undefined reference to `ffi_call'
/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/Call.c:378:(.text+0xa89): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `ffi_call'
Variadic.o: In function `variadic_invoke':
/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/Variadic.c:252: undefined reference to `ffi_call'
/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/Variadic.c:252:(.text+0x36d): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `ffi_call'
/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi-x86_64-cygwin/.libs/libffi_convenience.a(prep_cif.o): In function `ffi_prep_cif':
/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src/prep_cif.c:162: undefined reference to `ffi_prep_cif_machdep'
/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src/prep_cif.c:162:(.text+0x272): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `ffi_prep_cif_machdep'
/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi-x86_64-cygwin/.libs/libffi_convenience.a(prep_cif.o): In function `ffi_prep_closure':
/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src/prep_cif.c:174: undefined reference to `ffi_prep_closure_loc'
/home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3/ext/ffi_c/libffi/src/prep_cif.c:174:(.text+0x2b7): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `ffi_prep_closure_loc'
collect2: error: ld returned 1 exit status
Makefile:232: recipe for target 'ffi_c.so' failed
make: *** [ffi_c.so] Error 1

make failed, exit code 2

Gem files will remain installed in /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/gems/ffi-1.9.3 for inspection.
Results logged to /home/chris/.rubies/ruby-2.1.1/lib/ruby/gems/2.1.0/extensions/x86_64-cygwin/2.1.0/ffi-1.9.3/gem_make.out

有人知道这个问题的可能解决方案吗?我在 Windows 8.1 上使用 Ruby 2.1.1。

最佳答案

我使用 cygwin 安装程序安装了 libffi-develruby-pkg-config,然后它对我有用。

请参阅 https://github.com/ffi/ffi/issues/317 上的讨论.

libffi6 依赖于 libffi-devel,因此您不必显式选择它。 cygwin32-libffi 不是必需的。

关于rubygems - ffi gem 无法在 Cygwin 上构建 native 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23505204/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com