2012-08-12 64 views
5

我一直试图在OSX 10.8通过创业板安装FFI -v '1.1.5' OSX 10.8

gem install ffi -v '1.1.5' 

,结果

ERROR: Error installing ffi: 
ERROR: Failed to build gem native extension. 

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby 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()... no 
checking for ruby_native_thread_p()... no 
checking for rb_thread_call_with_gvl()... no 
creating extconf.h 
creating Makefile 

make 
mkdir -p "/Library/Ruby/Gems/1.8/gems/ffi-1.1.5/ext/ffi_c"/libffi-i386; (if [ ! -f  "/Library/Ruby/Gems/1.8/gems/ffi-1.1.5/ext/ffi_c"/libffi-i386/Makefile ]; then echo "Configuring libffi for i386"; cd "/Library/Ruby/Gems/1.8/gems/ffi-1.1.5/ext/ffi_c"/libffi-i386 && env CC=" xcrun cc" CFLAGS="-arch i386 " LDFLAGS="-arch i386" "/Library/Ruby/Gems/1.8/gems/ffi-1.1.5/ext/ffi_c/libffi"/configure --disable-static --with-pic=yes --disable-dependency-tracking --host=i386-apple-darwin > /dev/null; fi); env MACOSX_DEPLOYMENT_TARGET=10.4 make -C "/Library/Ruby/Gems/1.8/gems/ffi-1.1.5/ext/ffi_c"/libffi-i386 
Configuring libffi for i386 
configure: WARNING: if you wanted to set the --build type, don't use --host. 
If a cross compiler is detected then cross compile mode will be used 
configure: error: in `/Library/Ruby/Gems/1.8/gems/ffi-1.1.5/ext/ffi_c/libffi-i386': 
configure: error: C compiler cannot create executables 
See `config.log' for more details 
make[1]: *** No targets specified and no makefile found. Stop. 
make: *** ["/Library/Ruby/Gems/1.8/gems/ffi-1.1.5/ext/ffi_c"/libffi- i386/.libs/libffi_convenience.a] Error 2 


Gem files will remain installed in /Library/Ruby/Gems/1.8/gems/ffi-1.1.5 for inspection. 
Results logged to /Library/Ruby/Gems/1.8/gems/ffi-1.1.5/ext/ffi_c/gem_make.out 

我曾试图按照

安装FFI

An error occured while installing ffi (1.1.2), and Bundler cannot continue

and

Not able to install some gems after mountain lion upgrade

没有任何运气。

回答

0

看起来ffi坚持在系统运行64位时构建32位版本。

有最有可能的两种方式继续:

  1. 尝试使用最新版本的宝石gem install ffi的 - 但这并没有工作 - 因为这需要固定在图书馆,
  2. 编译32位红宝石rvm install 1.9.3-n32 --32 - 但是这也没有如多数图书馆最有可能将64位编译工作,所以它可能无法编译或编译和现在的问题
2

我FFI安装失败,一个非常类似的错误消息:

mkdir -p "/Library/Ruby/Gems/1.8/gems/ffi-1.9.0/ext/ffi_c"/libffi-i386; (if [ ! -f "/Library/Ruby/Gems/1.8/gems/ffi-1.9.0/ext/ffi_c"/libffi-i386/Makefile ]; then echo "Configuring libffi for i386"; cd "/Library/Ruby/Gems/1.8/gems/ffi-1.9.0/ext/ffi_c"/libffi-i386 && env CC=" xcrun cc" CFLAGS="-arch i386 " LDFLAGS="-arch i386" "/Library/Ruby/Gems/1.8/gems/ffi-1.9.0/ext/ffi_c/libffi"/configure --disable-static --with-pic=yes --disable-dependency-tracking --host=i386-apple-darwin > /dev/null; fi); env MACOSX_DEPLOYMENT_TARGET=10.4 make -C "/Library/Ruby/Gems/1.8/gems/ffi-1.9.0/ext/ffi_c"/libffi-i386 
Configuring libffi for i386 
configure: WARNING: if you wanted to set the --build type, don't use --host. 
    If a cross compiler is detected then cross compile mode will be used 
configure: error: in `/Library/Ruby/Gems/1.8/gems/ffi-1.9.0/ext/ffi_c/libffi-i386': 
configure: error: C compiler cannot create executables 

我发现xcrun CC的命令,并试图手动运行它给了我,我没有同意XCode的命令行工具,苹果的消息'许可协议。 sudo xcrun cc安装成功后。

$ xcrun cc 
Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo. 
$ sudo xcrun cc 
You have not agreed to the Xcode license agreements. You must agree to both license agreements below in order to use Xcode. 
Hit the Enter key to view the license agreements at '/Applications/Xcode.app/Contents/Resources/English.lproj/License.rtf' 
... 

```

+0

这不仅发生XCode中的第一个安装后,但随时苹果改变了许可。因此,XCode更新可能会导致XCode工具停止工作,直到您接受新的许可协议。 – Technosophos 2013-10-20 15:26:02