The problem: You compile your C code on a OS X 10.6 machine like this:
gcc-4.2 -mmacosx-version-min=10.5 -isysroot /Developer/SDKs/MacOSX10.5.sdk ...
When trying to run the executable on a OS X 10.5 machine, you may get this error:
Dyld Error Message: unknown required load command 0x80000022
The reason is that OS X 10.5 doesn’t understand the load command 'LC_DYLD_INFO_ONLY'
(0x80000022) that was used by the OS X 10.6 linker.
Solution: Make sure you are using a deployment target by setting the environment variable just before your link command:
export MACOSX_DEPLOYMENT_TARGET=10.5 (or setenv MACOSX_DEPLOYMENT_TARGET=10.5)
You can always check the load commands of the executable like this:
(without using deployment target) otool -l binary Load command 4 cmd LC_DYLD_INFO_ONLY cmdsize 48 rebase_off 0 rebase_size 0 bind_off 462848 bind_size 1320 weak_bind_off 0 weak_bind_size 0 lazy_bind_off 464168 lazy_bind_size 2624 export_off 466792 export_size 4568
(using deployment target) otool -l binary Load command 4 cmd LC_DYLD_INFO cmdsize 48 rebase_off 0 rebase_size 0 bind_off 466944 bind_size 1400 weak_bind_off 0 weak_bind_size 0 lazy_bind_off 468344 lazy_bind_size 2656 export_off 471000 export_size 4568
Another solution: Read this Intel article here – it may give you another possible solution.