| Q: At compile time I am getting "ld: cycle in dylib re-exports with /usr/X11R6/lib/"libGL.dylib
 How can I properly build my application?
A: While building X11 / OpenGL applications like this: 
gcc glxgears.c -o glxgears -I/usr/X11R6/include -L/usr/X11R6/lib -lGL -lX11
 Some developers might experience the following error: 
ld: cycle in dylib re-exports with /usr/X11R6/lib/libGL.dylib
collect2: ld returned 1 exit status
 BackgroundThe linker on Mac OS X v.10.5 searches -L paths for indirect libraries and in doing so it finds two copies of libGL.dylib. One in /usr/X11/lib and the other in/System/Library/Frameworks/OpenGL.framework/Versions/A/Librariesand this causes a cycle. This is a side effect of various linker improvements in Leopard, which we may be able to mitigate in a future release. Back to Top  WorkaroundYou can overcome this problem by providing the -dylib_fileoption to the linker. The-dylib_fileoption is described as: 
-dylib_file install_name:file_name
   Specifies that a dynamic shared library is in a different location than its standard location.
   Use this option when you link with a library that is dependent on a dynamic library, and the
   dynamic library is in a location other than its default location. install_name specifies the path
   where the library normally resides. file_name specifies the path of the library you want to use
   instead. For example, if you link to a library that depends upon the dynamic library libsys
   and you have libsys installed in a nondefault location, you would use this option:
   -dylib_file /lib/libsys_s.A.dylib:/me/lib/libsys_s.A.dylib.
 For this specific issue the -dyld_file option should be used like this: 
-dylib_file \
/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:\
/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib
 A full compile line for an application might look like this: 
gcc glxgears.c -o glxgears -I/usr/X11R6/include -L/usr/X11R6/lib -lGL -lX11 -dylib_file \
/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:\
/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib
 Back to Top  Document Revision History| Date | Notes | 
|---|
 | 2007-10-30 | First Version | 
 Posted: 2007-10-30 |