simstring icon indicating copy to clipboard operation
simstring copied to clipboard

Using Ruby module: dyld: lazy symbol binding failed: Symbol not found: _libiconv_open

Open priancho opened this issue 12 years ago • 0 comments

System environment:

OS: OS X Lioon 10.7.5 RVM: rvm 1.22.18 Ruby: ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64_darwin11]


I tried to use ruby extension of SimString. It was successfully compiled, but when I ran the sample_unicode.rb (sample.rb runs without any problem) faced the following error messages.

$ ruby sample_unicode.rb

dyld: lazy symbol binding failed: Symbol not found: _libiconv_open Referenced from: /Users/priancho/work/PubDictionaries/simstring-1.0/swig/ruby/simstring.bundle Expected in: flat namespace

dyld: Symbol not found: _libiconv_open Referenced from: /Users/priancho/work/PubDictionaries/simstring-1.0/swig/ruby/simstring.bundle Expected in: flat namespace

Trace/BPT trap: 5

It seems that the problem comes from two libiconv libraries: one is OS X default library in /usr/lib and the other one is installed by MacPorts in /opt/local/lib.

Googling didn't give much information, but finally one of them worked for me.

In the simstring-1.0/swig/ruby/extconf.rb, put the following line before the create_makefile command as follows.

require 'mkmf' $CFLAGS='-I../../include' $LDFLAGS="-lstdc++"

have_library("iconv", "libiconv_open") create_makefile('simstring')

Then, sample_unicode.rb started work fine.

However, I could not figure out why this one line fixes the problem :-(

priancho avatar Oct 08 '13 08:10 priancho