Can';安装ffi ruby gem时找不到ffi.h
Ruby版本2.2.4p230 RubyGem版本2.7.2 已安装Ruby-devel和lib64ffi-devel 使用64位OpenMandriva 3.0、urpmi和rpmdrake 目标:安装compass,但首先需要gem ffi 在过去的两天里,我一直在互联网上苦苦搜寻,我真的很难受。。。我不可能安装较早版本的ruby,因为它依赖于较旧的ncurses。我觉得换掉ncurses会打开一罐恶心的虫子 然而。。。我也完全接受compass的替代方案,其中config.rb项目文件可以以某种方式进行移植/复制,以便compass和其他sass编译器都可以运行。(这是为了工作,我们不会很快更换sass生成器) /usr/share/gems/gems/ffi-1.9.18/ext/ffi_c完全存在,该目录中有一个ffi.c文件,但在附近找不到任何ffi.h文件。在一个绝望的时刻,我触摸了该目录中的ffi.h,当我运行gem install时,它将其删除我会试着复印一份别人的LIB,看看这是否有效 基本上,任何方法都可以在不破坏我的其他软件包的情况下让它正常工作。我不使用ruby做任何事情,只使用指南针 以下是输出:Can';安装ffi ruby gem时找不到ffi.h,ruby,rubygems,ffi,compass,Ruby,Rubygems,Ffi,Compass,Ruby版本2.2.4p230 RubyGem版本2.7.2 已安装Ruby-devel和lib64ffi-devel 使用64位OpenMandriva 3.0、urpmi和rpmdrake 目标:安装compass,但首先需要gem ffi 在过去的两天里,我一直在互联网上苦苦搜寻,我真的很难受。。。我不可能安装较早版本的ruby,因为它依赖于较旧的ncurses。我觉得换掉ncurses会打开一罐恶心的虫子 然而。。。我也完全接受compass的替代方案,其中config.rb项目文件可以
# sudo gem install ffi
Building native extensions. This could take a while...
ERROR: Error installing ffi:
ERROR: Failed to build gem native extension.
current directory: /usr/share/gems/gems/ffi-1.9.18/ext/ffi_c
/usr/bin/ruby -r ./siteconf20171110-17988-1lodsok.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}/lib64
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/usr/bin/$(RUBY_BASE_NAME)
--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}/lib64
--with-libffi-config
--without-libffi-config
--with-pkg-config
--without-pkg-config
/usr/share/ruby/mkmf.rb:456:in `try_do': The compiler failed to generate an executable file. (RuntimeError)
You have to install development tools first.
from /usr/share/ruby/mkmf.rb:587:in `try_cpp'
from /usr/share/ruby/mkmf.rb:1060:in `block in have_header'
from /usr/share/ruby/mkmf.rb:911:in `block in checking_for'
from /usr/share/ruby/mkmf.rb:351:in `block (2 levels) in postpone'
from /usr/share/ruby/mkmf.rb:321:in `open'
from /usr/share/ruby/mkmf.rb:351:in `block in postpone'
from /usr/share/ruby/mkmf.rb:321:in `open'
from /usr/share/ruby/mkmf.rb:347:in `postpone'
from /usr/share/ruby/mkmf.rb:910:in `checking_for'
from /usr/share/ruby/mkmf.rb:1059:in `have_header'
from extconf.rb:16:in `<main>'
To see why this extension failed to compile, please check the mkmf.log which can be found here:
/usr/lib64/gems/ruby/ffi-1.9.18/mkmf.log
extconf failed, exit code 1
Gem files will remain installed in /usr/share/gems/gems/ffi-1.9.18 for inspection.
Results logged to /usr/lib64/gems/ruby/ffi-1.9.18/gem_make.out
#sudo gem安装ffi
构建本机扩展。这可能需要一段时间。。。
错误:安装ffi时出错:
错误:无法生成gem本机扩展。
当前目录:/usr/share/gems/gems/ffi-1.9.18/ext/ffi\u c
/usr/bin/ruby-r./siteconf20171110-17988-1lodsok.rb extconf.rb
正在检查ffi.h.。**extconf.rb失败***
由于某些原因无法创建Makefile,可能缺少必要的
库和/或标题。有关详细信息,请查看mkmf.log文件。您可能需要配置选项。
提供的配置选项:
--使用opt dir
--不带opt dir
--选择包含
--不带opt include=${opt dir}/include
--使用opt lib
--不带opt lib=${opt dir}/lib64
--用make prog
--没有make prog
--srcdir=。
--库尔迪尔
--ruby=/usr/bin/$(ruby\u BASE\u NAME)
--带-ffi_c-dir
--不带-ffi_c-dir
--带-ffi_c-include
--不带-ffi_c-include=${ffi_c-dir}/include
--带-ffi_c-lib
--不带-ffi_c-lib=${ffi_c-dir}/lib64
--使用libffi配置
--没有libffi配置
--使用pkg配置
--没有pkg配置
/usr/share/ruby/mkmf.rb:456:“try_do”中:编译器未能生成可执行文件。(运行时错误)
您必须首先安装开发工具。
from/usr/share/ruby/mkmf.rb:587:in'try_cpp'
from/usr/share/ruby/mkmf.rb:1060:in`block in have_header'
from/usr/share/ruby/mkmf.rb:911:in'block-in-checking\u'
from/usr/share/ruby/mkmf.rb:351:in'block(2层)in
from/usr/share/ruby/mkmf.rb:321:in'open'
from/usr/share/ruby/mkmf.rb:351:in'block in delay'
from/usr/share/ruby/mkmf.rb:321:in'open'
from/usr/share/ruby/mkmf.rb:347:in“推迟”
from/usr/share/ruby/mkmf.rb:910:in'checking_'
from/usr/share/ruby/mkmf.rb:1059:in'have_header'
来自extconf.rb:16:in`'
要了解此扩展未能编译的原因,请检查mkmf.log,该日志可在此处找到:
/usr/lib64/gems/ruby/ffi-1.9.18/mkmf.log
extconf失败,退出代码1
Gem文件将继续安装在/usr/share/gems/gems/ffi-1.9.18中以供检查。
结果记录到/usr/lib64/gems/ruby/ffi-1.9.18/gem_make.out
感谢您的帮助 您的错误消息显示: /usr/share/ruby/mkmf.rb:456:“try_do”中:编译器未能生成可执行文件。(运行时错误) 您必须首先安装开发工具 这就是解决问题的方法:
xcode-select --install
(但事先确保xcode-select-p
正在将路径返回到稳定的xcode版本,如xcode 10)
另见