MrDuk
MrDuk

Reputation: 18322

Can't install gems using Cygwin -- undefined reference to `libiconv'

I'm getting the following output when trying to gem install 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>'

The mkmf.log has:

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 */

--------------------

But I'm not really sure what to make of it. I'm using Cygwin for this; not sure what to do next.

Upvotes: 2

Views: 389

Answers (1)

JetStream
JetStream

Reputation: 550

My suggestion would be to run cygwin-setup.exe / use apt-cyg to install libiconv-devel package

and rerun bundle install awsudo

Just a guess. I believe I encountered a similar issue while installing nokogiri with native extensions. Unfortunately, I don't have access to the system now to look at the logs to get the specific details. HTH

Upvotes: 1

Related Questions