11

上周,由于 bash “易受攻击的问题”,我在 cygwin 中进行了更新。
之后,我无法再编译 sass。
我尝试重新安装 ruby​​,在某些安装失败并重新安装 cygwin 后,我安装了它并使用它运行的
“gem update --system”进行了更新
,但是当我尝试安装 compass 时,我收到以下消息:

> /usr/bin/ruby.exe -r ./siteconf20141006-7856-1td7wzb.rb extconf.rb 
> checking for ffi.h... *** extconf.rb failed ***  Could not create
> Makefile due to some reason, probably lack of necessary  libraries
> and/or headers. Check the mkmf.log file for more details. You may 
> need configuration options.
> 
> Provided configuration options: 
> --with-opt-dir 
> --without-opt-dir 
> --with-opt-include 
> --without-opt-include=${opt-dir}/include 
> --with-opt-lib 
> --without-opt-lib=${opt-dir}/lib 
> --with-make-prog 
> --without-make-prog 
> --srcdir=. 
> --curdir 
> --ruby=/usr/bin/ruby 
> --with-ffi_c-dir 
> --without-ffi_c-dir 
> --with-ffi_c-include 
> --without-ffi_c-include=${ffi_c-dir}/include 
> --with-ffi_c-lib 
> --without-ffi_c-lib=${ffi_c-dir}/ 
> --with-libffi-config 
> --without-libffi-config 
> --with-pkg-config 
> --without-pkg-config  /usr/share/ruby/2.0.0/mkmf.rb:434:in `try_do': The compiler failed to generate an executable file. (RuntimeError) 
> You have to install development tools first.  from
> /usr/share/ruby/2.0.0/mkmf.rb:565:in `try_cpp'  from
> /usr/share/ruby/2.0.0/mkmf.rb:1044:in `block in have_header'  from
> /usr/share/ruby/2.0.0/mkmf.rb:895:in `block in checking_for'  from
> /usr/share/ruby/2.0.0/mkmf.rb:340:in `block (2 levels) in postpone' 
> from /usr/share/ruby/2.0.0/mkmf.rb:310:in `open'  from
> /usr/share/ruby/2.0.0/mkmf.rb:340:in `block in postpone'  from
> /usr/share/ruby/2.0.0/mkmf.rb:310:in `open'  from
> /usr/share/ruby/2.0.0/mkmf.rb:336:in `postpone'  from
> /usr/share/ruby/2.0.0/mkmf.rb:894:in `checking_for'  from
> /usr/share/ruby/2.0.0/mkmf.rb:1043:in `have_header'  from
> extconf.rb:16:in `<main>'
> 
> extconf failed, exit code 1

我试图安装 ffi(“gem install ffi”和“gem install ffi --pre”),我得到了同样的信息

这是日志(.gem/ruby/extensions/x86_64-cygwin/ffi-1.9.5/gem_make.out)

package configuration for libffi is not found 
"gcc -o conftest.exe -I/usr/include/ruby-2.0.0 -I/usr/include/ruby-2.0.0/ruby/backward -I/usr/include/ruby-2.0.0 -I. -ggdb -O2 -pipe -Wimplicit-function-declaration conftest.c -L. -L/usr/lib -L. -fstack-protector -lruby200 -lpthread -lrt -ldl -lcrypt " 
checked program was: 
/* begin */ 
1: #include "ruby.h" 
2: 
3: int main(int argc, char **argv) 
4: { 
5: return 0; 
6: } 
/* end */

我真的很沮丧!!

系统 Windows 7 64 位 Cygwin

4

5 回答 5

28

是的,对我来说这只是gcc环境,所以你可以试试

sudo apt-get install gcc

这在 ubuntu 中对我有用 :)

于 2016-02-17T01:12:53.163 回答
4

确保已安装 xcode。

xcode-select --install

如果已安装,请确保您已接受 TOS。

sudo xcodebuild -license

向下滚动到底部并输入同意。

它应该与上述步骤一起使用。

如果您在执行上述 2 个步骤后看到以​​下问题

ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/compass

尝试跟随。

sudo su
sudo gem install -n /usr/local/bin compass
于 2016-03-08T18:59:03.467 回答
3

在 OSX 上这行得通:

如果gem install compass失败,请尝试

gem install ffi 万一这也失败了,错误似乎是 ffi 构建正在/usr/bin寻找gcc-4.2

如果您安装了 gcc,只需/usr/bin键入即可在其中创建一个符号链接

sudo ln -s gcc gcc-4.2

否则你可能需要先安装 gcc (google that)

于 2015-11-20T21:49:02.373 回答
0

试试这个:

根据您的 ruby​​ 版本下载并安装 ruby​​ dev kit

http://rubyinstaller.org/downloads/

如有任何问题,请在 github 上关注此 wiki。

https://github.com/oneclick/rubyinstaller/wiki/Development-Kit

于 2014-10-06T10:59:06.517 回答
0

这是一个非常古老的线程,但是当我努力解决同一个问题很长时间时,我认为它可能对其他人有帮助......

最终对我有用的方法:卸载 ruby​​ 3.1.x 并使用此处提供的 ruby​​installer-devkit-2.7.5-1-x64.exe 重新安装:https ://rubyinstaller.org/downloads/

确保最后安装 devTools

于 2022-01-07T14:31:36.033 回答