Ruby Can';t使用Cygwin安装gems——对'libiconv';的未定义引用;
在尝试Ruby Can';t使用Cygwin安装gems——对'libiconv';的未定义引用;,ruby,gcc,cygwin,Ruby,Gcc,Cygwin,在尝试gem安装awsudo时,我得到以下输出: /home/ctote/.gem/ruby/2.3.0/gems/mini_portile2-2.2.0/lib/mini_portile2/mini_portile.rb:83:in `apply_patch': Failed to complete patch task; patch(1) or git(1) is required. (RuntimeError) from /home/ctote/.gem/ruby/2.3.
gem安装awsudo时,我得到以下输出:
/home/ctote/.gem/ruby/2.3.0/gems/mini_portile2-2.2.0/lib/mini_portile2/mini_portile.rb:83:in `apply_patch': Failed to complete patch task; patch(1) or git(1) is required. (RuntimeError)
from /home/ctote/.gem/ruby/2.3.0/gems/mini_portile2-2.2.0/lib/mini_portile2/mini_portile.rb:91:in `block in patch'
from /home/ctote/.gem/ruby/2.3.0/gems/mini_portile2-2.2.0/lib/mini_portile2/mini_portile.rb:89:in `each'
from /home/ctote/.gem/ruby/2.3.0/gems/mini_portile2-2.2.0/lib/mini_portile2/mini_portile.rb:89:in `patch'
from /home/ctote/.gem/ruby/2.3.0/gems/mini_portile2-2.2.0/lib/mini_portile2/mini_portile.rb:151:in `cook'
from extconf.rb:365:in `block (2 levels) in process_recipe'
from extconf.rb:257:in `block in chdir_for_build'
from extconf.rb:256:in `chdir'
from extconf.rb:256:in `chdir_for_build'
from extconf.rb:364:in `block in process_recipe'
from extconf.rb:262:in `tap'
from extconf.rb:262:in `process_recipe'
from extconf.rb:548:in `<main>'
但我真的不知道该怎么办。
我用Cygwin来做这个;不确定下一步要做什么。我的建议是运行cygwin setup.exe
/使用apt cyg
安装libiconv-devel
软件包
然后重新运行bundle安装awsudo
只是猜测而已。我相信我在安装带有本机扩展的nokogiri时遇到了类似的问题。不幸的是,我现在无法访问系统来查看日志以获得具体的细节。嗯
have_iconv?: checking for iconv... -------------------- yes
"gcc -o conftest.exe -I/usr/include/ruby-2.3.0 -I/usr/include/ruby-2.3.0/ruby/backward -I/usr/include/ruby-2.3.0 -I. -ggdb -O2 -pipe -Wimplicit-function-declaration -g -DXP_UNIX -Wall -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline conftest.c -L. -L/usr/lib -L. -fstack-protector -lruby230 -lpthread -lgmp -ldl -lcrypt "
/tmp/ccP5llv3.o: In function `main':
/home/ctote/.gem/ruby/2.3.0/gems/nokogiri-1.8.0/ext/nokogiri/conftest.c:8: undefined reference to `libiconv_open'
/home/ctote/.gem/ruby/2.3.0/gems/nokogiri-1.8.0/ext/nokogiri/conftest.c:8:(.text.startup+0x14): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `libiconv_open'
/home/ctote/.gem/ruby/2.3.0/gems/nokogiri-1.8.0/ext/nokogiri/conftest.c:9: undefined reference to `libiconv'
/home/ctote/.gem/ruby/2.3.0/gems/nokogiri-1.8.0/ext/nokogiri/conftest.c:9:(.text.startup+0x2d): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `libiconv'
collect2: error: ld returned 1 exit status
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: #include <stdlib.h>
4: #include <iconv.h>
5:
6: int main(void)
7: {
8: iconv_t cd = iconv_open("", "");
9: iconv(cd, NULL, NULL, NULL, NULL);
10: return EXIT_SUCCESS;
11: }
/* end */
"gcc -o conftest.exe -I/usr/include/ruby-2.3.0 -I/usr/include/ruby-2.3.0/ruby/backward -I/usr/include/ruby-2.3.0 -I. -ggdb -O2 -pipe -Wimplicit-function-declaration -g -DXP_UNIX -Wall -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline conftest.c -L. -L/usr/lib -L. -fstack-protector -lruby230 -liconv -lpthread -lgmp -ldl -lcrypt "
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: #include <stdlib.h>
4: #include <iconv.h>
5:
6: int main(void)
7: {
8: iconv_t cd = iconv_open("", "");
9: iconv(cd, NULL, NULL, NULL, NULL);
10: return EXIT_SUCCESS;
11: }
/* end */
--------------------