Skip to content
This repository has been archived by the owner on Jan 25, 2022. It is now read-only.

Incompatible library version - Invalid MEX File #56

Closed
demarlio25 opened this issue Mar 7, 2013 · 12 comments
Closed

Incompatible library version - Invalid MEX File #56

demarlio25 opened this issue Mar 7, 2013 · 12 comments

Comments

@demarlio25
Copy link

demarlio25 commented Mar 7, 2013

I seem to be having an issue with a library version mismatch and can't seem to find the exact source of the error. I am currently running OSX 10.8/MATLAB 2012a/OpenCV 2.4.4 and when calling cv.imread I get this output in matlab:

Invalid MEX-file '/Users/Name/Dropbox/~Sensor
Fusion/Matlab/MexOpenCV/mexopencv/+cv/private/CascadeClassifier_.mexmaci64': dlopen(/Users/Name/Dropbox/~Sensor
Fusion/Matlab/MexOpenCV/mexopencv/+cv/private/CascadeClassifier_.mexmaci64, 1): Library not loaded:
/opt/local/lib/libfreetype.6.dylib
  Referenced from: /opt/local/lib/libavcodec.54.dylib
  Reason: Incompatible library version: libavcodec.54.dylib requires version 16.0.0 or later, but libfreetype.6.dylib
  provides version 10.0.0

I'd tried:

$ LD_PRELOAD=/usr/lib/libstdc++.so.6 matlab

With no luck. I've also tried:

$ locate libstdc++.so.6

WARNING: The locate database (/var/db/locate.database) does not exist.
To create the database, run the following command:

  sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist

Please be aware that the database can take some time to generate; once
the database has been created, this message will no longer appear.
```

Any ideas?
@kyamagu
Copy link
Owner

kyamagu commented Mar 7, 2013

In Mac use DYLD_INSERT_LIBRARIES instead. Check README.

@demarlio25
Copy link
Author

demarlio25 commented Mar 7, 2013

I also tried that before, sorry, should have posted that. When looking in the /usr/lib/ directory I only see the .dylibs

$ DYLD_INSERT_LIBRARIES=/usr/lib/libstdc++.so.6 /Applications/MATLAB_R2012a.app/bin/matlab
dyld: could not load inserted library: /usr/lib/libstdc++.so.6

@kyamagu
Copy link
Owner

kyamagu commented Mar 7, 2013

The error message is saying you're trying to load incompatible libfreetype. Probably you have no problem with libstdc++. Check that your libfreetype is compatible with your opencv and that compatible version is loaded inside matlab. If not, please upgrade your libfreetype.

@demarlio25
Copy link
Author

Everything has been updated. I'm trying to determine where the incompatibility is. I have found other people with the issue due to the libfreetype, just no solutions.

@kyamagu
Copy link
Owner

kyamagu commented Mar 8, 2013

If you're using macports, just port upgrade freetype.

@demarlio25
Copy link
Author

freetype was previously at the most recent version. Still looking into the issue.

@kyamagu
Copy link
Owner

kyamagu commented Mar 11, 2013

That is interesting. I can verify that my environment (os x 10.8.2) has no issue with libavcodec + libfreetype installed via macports 2.1.3. How did you install these software? Are you using opencv package in macports or anything else?

$ otool -L /opt/local/lib/libavcodec.54.dylib 
/opt/local/lib/libavcodec.54.dylib:
    /opt/local/lib/libavcodec.54.dylib (compatibility version 54.0.0, current version 54.86.100)
    /opt/local/lib/libavutil.52.dylib (compatibility version 52.0.0, current version 52.13.100)
    /opt/local/lib/libjack.0.dylib (compatibility version 1.0.0, current version 1.28.0)
    /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 1187.34.0)
    /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 19.0.0)
    /opt/local/lib/libSDL-1.2.0.dylib (compatibility version 12.0.0, current version 12.4.0)
    /opt/local/lib/libxvidcore.4.dylib (compatibility version 4.0.0, current version 4.3.0)
    /opt/local/lib/libx264.128.dylib (compatibility version 0.0.0, current version 0.0.0)
    /opt/local/lib/libvorbisenc.2.dylib (compatibility version 3.0.0, current version 3.9.0)
    /opt/local/lib/libvorbis.0.dylib (compatibility version 5.0.0, current version 5.6.0)
    /opt/local/lib/libogg.0.dylib (compatibility version 9.0.0, current version 9.0.0)
    /opt/local/lib/libtheoraenc.1.dylib (compatibility version 3.0.0, current version 3.2.0)
    /opt/local/lib/libtheoradec.1.dylib (compatibility version 3.0.0, current version 3.4.0)
    /opt/local/lib/libspeex.1.dylib (compatibility version 7.0.0, current version 7.0.0)
    /opt/local/lib/libschroedinger-1.0.0.dylib (compatibility version 12.0.0, current version 12.0.0)
    /opt/local/lib/libopus.0.dylib (compatibility version 4.0.0, current version 4.0.0)
    /opt/local/lib/libopenjpeg.1.dylib (compatibility version 7.0.0, current version 7.0.0)
    /opt/local/lib/libmp3lame.0.dylib (compatibility version 1.0.0, current version 1.0.0)
    /opt/local/lib/libmodplug.1.dylib (compatibility version 2.0.0, current version 2.0.0)
    /opt/local/lib/libfreetype.6.dylib (compatibility version 16.0.0, current version 16.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)
    /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 744.12.0)
    /System/Library/Frameworks/VideoDecodeAcceleration.framework/Versions/A/VideoDecodeAcceleration (compatibility version 1.0.0, current version 1.0.0)
    /System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore (compatibility version 1.2.0, current version 1.8.0)
    /opt/local/lib/libbz2.1.0.dylib (compatibility version 1.0.0, current version 1.0.6)
    /opt/local/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.7)
    /System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo (compatibility version 1.2.0, current version 1.8.0)


$ otool -L /opt/local/lib/libfreetype.6.dylib 
/opt/local/lib/libfreetype.6.dylib:
    /opt/local/lib/libfreetype.6.dylib (compatibility version 16.0.0, current version 16.0.0)
    /opt/local/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.7)
    /opt/local/lib/libbz2.1.0.dylib (compatibility version 1.0.0, current version 1.0.6)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)

@demarlio25
Copy link
Author

demarlio25 commented Mar 11, 2013

Believe I have solved the issue. I think there was a permissions issue somewhere. Finally worked with:

$ sudo DYLD_INSERT_LIBRARIES=/opt/local/lib/libtiff.5.dylib /Applications/MATLAB_R2012a.app/bin/matlab

@kyamagu
Copy link
Owner

kyamagu commented Mar 11, 2013

Hmm, launching matlab with root permission doesn't sound right. But sure, it seems like a permission issue. Good luck!

@demarlio25 demarlio25 reopened this Mar 27, 2013
@demarlio25
Copy link
Author

demarlio25 commented Mar 27, 2013

Still having the issue:

>> t = cv.BackgroundSubtractorMOG2(10,16)
Invalid MEX-file
'/Users/demarlio25/Desktop/GitHub/mexopencv/+cv/private/BackgroundSubtractorMOG2_.mexmaci64':
dlopen(/Users/demarlio25/Desktop/GitHub/mexopencv/+cv/private/BackgroundSubtractorMOG2_.mexmaci64,
1): Library not loaded: /opt/local/lib/libfreetype.6.dylib
  Referenced from: /opt/local/lib/libavcodec.54.dylib
  Reason: Incompatible library version: libavcodec.54.dylib requires version 16.0.0 or later,
  but libfreetype.6.dylib provides version 10.0.0

I have tried opening Matlab by:

$ DYLD_INSERT_LIBRARIES=/usr/lib/libstdc++.so.6 /Applications/MATLAB_R2012a.app/bin/matlab
$ DYLD_INSERT_LIBRARIES=/opt/local/lib/libtiff.5.dylib /Applications/MATLAB_R2012a.app/bin/matlab

Also:

$ otool -L /opt/local/lib/libavcodec.54.dylib 
/opt/local/lib/libavcodec.54.dylib:
    /opt/local/lib/libavcodec.54.dylib (compatibility version 54.0.0, current version 54.86.100)
    /opt/local/lib/libavutil.52.dylib (compatibility version 52.0.0, current version 52.13.100)
    /opt/local/lib/libjack.0.dylib (compatibility version 1.0.0, current version 1.28.0)
    /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 1187.37.0)
    /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 19.0.0)
    /opt/local/lib/libSDL-1.2.0.dylib (compatibility version 12.0.0, current version 12.4.0)
    /opt/local/lib/libxvidcore.4.dylib (compatibility version 4.0.0, current version 4.3.0)
    /opt/local/lib/libx264.128.dylib (compatibility version 0.0.0, current version 0.0.0)
    /opt/local/lib/libvorbisenc.2.dylib (compatibility version 3.0.0, current version 3.9.0)
    /opt/local/lib/libvorbis.0.dylib (compatibility version 5.0.0, current version 5.6.0)
    /opt/local/lib/libogg.0.dylib (compatibility version 9.0.0, current version 9.0.0)
    /opt/local/lib/libtheoraenc.1.dylib (compatibility version 3.0.0, current version 3.2.0)
    /opt/local/lib/libtheoradec.1.dylib (compatibility version 3.0.0, current version 3.4.0)
    /opt/local/lib/libspeex.1.dylib (compatibility version 7.0.0, current version 7.0.0)
    /opt/local/lib/libschroedinger-1.0.0.dylib (compatibility version 12.0.0, current version 12.0.0)
    /opt/local/lib/libopus.0.dylib (compatibility version 4.0.0, current version 4.0.0)
    /opt/local/lib/libopenjpeg.1.dylib (compatibility version 7.0.0, current version 7.0.0)
    /opt/local/lib/libmp3lame.0.dylib (compatibility version 1.0.0, current version 1.0.0)
    /opt/local/lib/libmodplug.1.dylib (compatibility version 2.0.0, current version 2.0.0)
    /opt/local/lib/libfreetype.6.dylib (compatibility version 16.0.0, current version 16.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)
    /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 744.18.0)
    /System/Library/Frameworks/VideoDecodeAcceleration.framework/Versions/A/VideoDecodeAcceleration (compatibility version 1.0.0, current version 1.0.0)
    /System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore (compatibility version 1.2.0, current version 1.8.0)
    /opt/local/lib/libbz2.1.0.dylib (compatibility version 1.0.0, current version 1.0.6)
    /opt/local/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.7)
    /System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo (compatibility version 1.2.0, current version 1.8.0)

$ otool -L /opt/local/lib/libfreetype.6.dylib 
/opt/local/lib/libfreetype.6.dylib:
    /opt/local/lib/libfreetype.6.dylib (compatibility version 16.0.0, current version 16.0.0)
    /opt/local/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.7)
    /opt/local/lib/libbz2.1.0.dylib (compatibility version 1.0.0, current version 1.0.6)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)

@kyamagu
Copy link
Owner

kyamagu commented Mar 27, 2013

What would the error message say if you open matlab with this?

DYLD_INSERT_LIBRARIES=/opt/local/lib/libfreetype.6.dylib:/opt/local/lib/libtiff.5.dylib /Applications/MATLAB_R2012a.app/bin/matlab

@demarlio25
Copy link
Author

Perfect! That works. Thanks for all the help. I now have it working on both windows and mac.

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

No branches or pull requests

3 participants