What to do when encoutering the "dyld: Library not loaded…Incompatible library version" error message ?
21/03/06 13:57
Is there a general strategy to help find out the source of this kind of problems and how to solve them ?
Is there a general strategy to help find out the source of this kind of problems and how to solve them ?
When this kind of message:
dyld: Library not loaded: PATH_TO_A_LIBRARY
Referenced from: PATH_TO_EXECUTABLE
Reason: Incompatible library version: EXECUTABLE_NAME requires version x.y.z or later, but LIBRARY_NAME provides version r.s.t
appears in the console at application launch, it really means what it says:
you have a library that's no more compatible with the application and… it's time to upgrade…
or may be not …
Sometimes, it just means that an old and incompatible version of a library was left out in the paths, where the application looks out for libraries to load… : checks out your LD_LIBRARY_PATH
Sometimes, it means you are trying a version of an application requiring a newer version of the OS…
Then you should "downgrade" the application to the one compatible with the version of the OS you are running…
But there is also another situtation, specific to developers, when this problem occurs:
when moving around Xcode projects from one computer to another, when upgrading projects from one version of Xcode to another one, … the "Framework Search Paths" may be no more valid…
So, if this problem occurs during development of a project using specific frameworks, double check your "Framework Search Paths", and in particular, pay attention to the "Development" target changed to "Debug" and the "Deployment" one changed to "Release": it's very common to get trapped by these changes…
When this kind of message:
dyld: Library not loaded: PATH_TO_A_LIBRARY
Referenced from: PATH_TO_EXECUTABLE
Reason: Incompatible library version: EXECUTABLE_NAME requires version x.y.z or later, but LIBRARY_NAME provides version r.s.t
appears in the console at application launch, it really means what it says:
you have a library that's no more compatible with the application and… it's time to upgrade…
or may be not …
Sometimes, it just means that an old and incompatible version of a library was left out in the paths, where the application looks out for libraries to load… : checks out your LD_LIBRARY_PATH
Sometimes, it means you are trying a version of an application requiring a newer version of the OS…
Then you should "downgrade" the application to the one compatible with the version of the OS you are running…
But there is also another situtation, specific to developers, when this problem occurs:
when moving around Xcode projects from one computer to another, when upgrading projects from one version of Xcode to another one, … the "Framework Search Paths" may be no more valid…
So, if this problem occurs during development of a project using specific frameworks, double check your "Framework Search Paths", and in particular, pay attention to the "Development" target changed to "Debug" and the "Deployment" one changed to "Release": it's very common to get trapped by these changes…