tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CMake shared libs on MacOSX


I have a problem with CMake on Mac OS X. When I try to install a shared library 
(for example, by building and installing audio/libmusicbrainz), I see the 
library install name is wrong, and as a consequence, programs refuse to run, 
since the library can't be found.

# otool -L /usr/pkg/lib/libmusicbrainz3.6.2.0.dylib
        libmusicbrainz3.6.dylib (compatibility version 6.0.0, current version 
        /usr/pkg/lib/libneon.27.dylib (compatibility version 30.0.0, current 
version 30.3.0)
        /usr/pkg/lib/libdiscid.0.dylib (compatibility version 3.0.0, current 
version 3.1.0)
        /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current 
version 7.9.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current 
version 125.2.0)

The first line should be:
        /usr/pkg/lib/libmusicbrainz3.6.dylib (compatibility version 6.0.0, 
current version 6.2.0)

My guess is 'install_name_tool' is not called, while it should be during 
install phase. (To fix this manually, I do: sudo install_name_tool -id 
/usr/pkg/lib/libmusicbrainz3.6.dylib /usr/pkg/lib/libmusicbrainz3.6.dylib).

As my knowledge of CMake is very limited, any advice is welcome.

Kind regards,

Home | Main Index | Thread Index | Old Index