Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"Symbol not found" issue for OSX 10.9 #17

Closed
scalebig opened this issue Nov 29, 2013 · 10 comments
Closed

"Symbol not found" issue for OSX 10.9 #17

scalebig opened this issue Nov 29, 2013 · 10 comments

Comments

@scalebig
Copy link

Node is reporting the following error when using imagemagick-native:

dyld: lazy symbol binding failed: Symbol not found: __ZN6Magick5Image6magickERKSs
  Referenced from: /dev/node_modules/imagemagick-native/build/Release/imagemagick.node
  Expected in: dynamic lookup

dyld: Symbol not found: __ZN6Magick5Image6magickERKSs
  Referenced from: /dev/node_modules/imagemagick-native/build/Release/imagemagick.node
  Expected in: dynamic lookup

Trace/BPT trap: 5

environment:
Node: v0.10.22 - installed from nodejs.org package
OSX: 10.9
ImageMagick: stable 6.8.7-0 installed from homebrew
Xcode: 5.02

Thank you in advance :)

@SamDecrock
Copy link

I also have that problem!

dyld: lazy symbol binding failed: Symbol not found: __ZN6Magick5Image6magickERKSs
  Referenced from: /Users/sam/projects/test/app/node_modules/imagemagick-native/build/Release/imagemagick.node
  Expected in: dynamic lookup

dyld: Symbol not found: __ZN6Magick5Image6magickERKSs
  Referenced from: /Users/sam/projects/test/app/node_modules/imagemagick-native/build/Release/imagemagick.node
  Expected in: dynamic lookup

Trace/BPT trap: 5

node v0.10.13
osx 10.9 (Maverick)
xcode 5.0.2
ImageMagick 6.8.7-7 Q16 x86_64 2013-12-13

@SamDecrock
Copy link

setting

export DYLD_LIBRARY_PATH=/usr/local/lib/:$DYLD_LIBRARY_PATH

Fixes the issue but results in the dyld library path being broken and so other errors start to pop up :-(

@mash
Copy link
Collaborator

mash commented Jan 7, 2014

I guess this is the problem?

% otool -L build/Release/imagemagick.node
build/Release/imagemagick.node:
        /usr/local/lib/libMagick++-6.Q16.3.dylib (compatibility version 4.0.0, current version 4.0.0)
        /usr/local/lib/libMagickWand-6.Q16.1.dylib (compatibility version 2.0.0, current version 2.0.0)
        /usr/local/lib/libMagickCore-6.Q16.1.dylib (compatibility version 2.0.0, current version 2.0.0)
        /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 60.0.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)
        /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 2577.0.0)
% otool -L /usr/local/Cellar/imagemagick/6.8.7-7/lib/libMagick++-6.Q16.3.dylib
/usr/local/Cellar/imagemagick/6.8.7-7/lib/libMagick++-6.Q16.3.dylib:
        /usr/local/lib/libMagick++-6.Q16.3.dylib (compatibility version 4.0.0, current version 4.0.0)
        /usr/local/Cellar/imagemagick/6.8.7-7/lib/libMagickCore-6.Q16.1.dylib (compatibility version 2.0.0, current version 2.0.0)
        /usr/local/Cellar/imagemagick/6.8.7-7/lib/libMagickWand-6.Q16.1.dylib (compatibility version 2.0.0, current version 2.0.0)
        /usr/local/lib/libfreetype.6.dylib (compatibility version 17.0.0, current version 17.2.0)
        /usr/lib/libbz2.1.0.dylib (compatibility version 1.0.0, current version 1.0.5)
        /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5)
        /usr/local/lib/libltdl.7.dylib (compatibility version 11.0.0, current version 11.0.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)
        /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0)

@mash
Copy link
Collaborator

mash commented Jan 7, 2014

libstdc++

% otool -L /usr/local/Cellar/imagemagick/6.8.6-3/lib/libMagick++-6.Q16.1.dylib
/usr/local/Cellar/imagemagick/6.8.6-3/lib/libMagick++-6.Q16.1.dylib:
        /usr/local/lib/libMagick++-6.Q16.1.dylib (compatibility version 2.0.0, current version 2.0.0)
        /usr/local/Cellar/imagemagick/6.8.6-3/lib/libMagickCore-6.Q16.1.dylib (compatibility version 2.0.0, current version 2.0.0)
        /usr/local/Cellar/imagemagick/6.8.6-3/lib/libMagickWand-6.Q16.1.dylib (compatibility version 2.0.0, current version 2.0.0)
        /usr/local/lib/libfreetype.6.dylib (compatibility version 17.0.0, current version 17.0.0)
        /usr/lib/libbz2.1.0.dylib (compatibility version 1.0.0, current version 1.0.5)
        /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5)
        /usr/local/lib/libltdl.7.dylib (compatibility version 11.0.0, current version 11.0.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)
        /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 56.0.0)

@mash
Copy link
Collaborator

mash commented Jan 7, 2014

@mash
Copy link
Collaborator

mash commented Jan 31, 2014

without side effects (nothing changes for non MacOSX10.9 machines)

https://github.com/mash/node-imagemagick-native/tree/runs-on-mavericks

ImageMagick built on MacOSX10.9 uses libc++
ImageMagick built on MacOSX10.8 uses libstdc++

% otool -L /usr/local/Cellar/imagemagick/6.8.6-3/lib/libMagick++-6.Q16.1.dylib
/usr/local/Cellar/imagemagick/6.8.6-3/lib/libMagick++-6.Q16.1.dylib:
        /usr/local/lib/libMagick++-6.Q16.1.dylib (compatibility version 2.0.0, current version 2.0.0)
        /usr/local/Cellar/imagemagick/6.8.6-3/lib/libMagickCore-6.Q16.1.dylib (compatibility version 2.0.0, current version 2.0.0)
        /usr/local/Cellar/imagemagick/6.8.6-3/lib/libMagickWand-6.Q16.1.dylib (compatibility version 2.0.0, current version 2.0.0)
        /usr/local/lib/libfreetype.6.dylib (compatibility version 17.0.0, current version 17.0.0)
        /usr/lib/libbz2.1.0.dylib (compatibility version 1.0.0, current version 1.0.5)
        /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5)
        /usr/local/lib/libltdl.7.dylib (compatibility version 11.0.0, current version 11.0.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)
        /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 56.0.0)
% otool -L /usr/local/Cellar/imagemagick/6.8.7-7/lib/libMagick++-6.Q16.3.dylib
/usr/local/Cellar/imagemagick/6.8.7-7/lib/libMagick++-6.Q16.3.dylib:
        /usr/local/lib/libMagick++-6.Q16.3.dylib (compatibility version 4.0.0, current version 4.0.0)
        /usr/local/Cellar/imagemagick/6.8.7-7/lib/libMagickCore-6.Q16.1.dylib (compatibility version 2.0.0, current version 2.0.0)
        /usr/local/Cellar/imagemagick/6.8.7-7/lib/libMagickWand-6.Q16.1.dylib (compatibility version 2.0.0, current version 2.0.0)
        /usr/local/lib/libfreetype.6.dylib (compatibility version 17.0.0, current version 17.2.0)
        /usr/lib/libbz2.1.0.dylib (compatibility version 1.0.0, current version 1.0.5)
        /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5)
        /usr/local/lib/libltdl.7.dylib (compatibility version 11.0.0, current version 11.0.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)
        /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0)

so this branch uses libc++ to build node-imagemagick-native

# before
% otool -L build/Release/imagemagick.node
build/Release/imagemagick.node:
        /usr/local/lib/libMagick++-6.Q16.3.dylib (compatibility version 4.0.0, current version 4.0.0)
        /usr/local/lib/libMagickWand-6.Q16.1.dylib (compatibility version 2.0.0, current version 2.0.0)
        /usr/local/lib/libMagickCore-6.Q16.1.dylib (compatibility version 2.0.0, current version 2.0.0)
        /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 60.0.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)
        /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 2577.0.0)

# after
% otool -L build/Release/imagemagick.node
build/Release/imagemagick.node:
        /usr/local/lib/libMagick++-6.Q16.3.dylib (compatibility version 4.0.0, current version 4.0.0)
        /usr/local/lib/libMagickWand-6.Q16.1.dylib (compatibility version 2.0.0, current version 2.0.0)
        /usr/local/lib/libMagickCore-6.Q16.1.dylib (compatibility version 2.0.0, current version 2.0.0)
        /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)

but I think we need node using libc++ to run sanely with ImageMagick linked with libc++.

% otool -L ~/.nave/installed/0.11.11/bin/node
/Users/mash/.nave/installed/0.11.11/bin/node:
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)
        /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 56.0.0)
        /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1669.0.0)
% otool -L ~/.nave/installed/0.10.25/bin/node
/Users/mash/.nave/installed/0.10.25/bin/node:
        /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon (compatibility version 2.0.0, current version 155.0.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)
        /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 945.18.0)
        /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 57.0.0)
        /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 45.0.0)
        /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 56.0.0)
        /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1669.0.0)
        /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 744.19.0)

@mash
Copy link
Collaborator

mash commented Feb 3, 2014

my ImageMagick 6.8.6-3 was installed before upgrading to 10.9
to install a libstdc++ linked ImageMagick after upgrading to 10.9, just do

# bottle for mountain lion is linked to libstdc++
wget "http://downloads.sourceforge.net/project/machomebrew/Bottles/imagemagick-6.8.7-7.mountain_lion.bottle.tar.gz"
brew install imagemagick-6.8.7-7.mountain_lion.bottle.tar.gz

@djalmaaraujo
Copy link

Working here! After do all that stuff, if you already installed the NPM module, you have to remove the node_modules/node-imagemagick-native and then install again. Working here!

@mash mash closed this as completed May 6, 2014
@sirikon
Copy link

sirikon commented Sep 2, 2014

Hi, I've got a similar problem:

dyld: lazy symbol binding failed: Symbol not found: __ZN6Magick5Image6magickERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE
  Referenced from: /Users/carlosfernandez-seiscocos/repos/Pictoose/node_modules/imagemagick-native/build/Release/imagemagick.node
  Expected in: flat namespace

dyld: Symbol not found: __ZN6Magick5Image6magickERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE
  Referenced from: /Users/carlosfernandez-seiscocos/repos/Pictoose/node_modules/imagemagick-native/build/Release/imagemagick.node
  Expected in: flat namespace

Trace/BPT trap: 5

Deleted my project's node_modules folder, did 'npm cache clear', reinstalled the imagemagick version that you said (6.8.7-7) and did npm install, but still doesn't work.

I had another project using node-imagemagick, so copied the folder into my project's node_modules and it worked, but need to fix this for future projects

Mac OS X 10.9.4 (Macbook 13'' 2009)
Node 0.10.24
xcode 5.1.1 (5B1008)

Thanks!

@esteban-uo
Copy link

+1 @djalmaaraujo thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants