macosdeploymentlinkershared-librariesosx-leopard

What are the default search directories to link a library on Mac OS X


I've build the Google Test with CMake on Mac OS X and get two shared libraries: libgtest.dylib and libgtest_main.dylib. And now I need install both them. I know there are some default search directories on Linux, such as /usr/lib, /usr/local/lib, etc.. But I am unfamiliar with Mac OS X and don't know where to place those libraries.

In Mac OS X Directory Structure, I find there are three directories of libraries: ~/Library, /Library and /usr/lib. And I've tried to place gtest libraries into these directories respectively and found out only /usr/lib works.

What I want to know is wether there are some rules about the default search directories on Mac OS X just like on Linux and Windows.


Solution

  • Take a look at the default values for environment variables used by the dyld linker:

    DYLD_FALLBACK_LIBRARY_PATH
       ...
    By default, it is set to $(HOME)/lib:/usr/local/lib:/lib:/usr/lib

    This article about "Deploying an Application on Mac OS X" and other article about "Mac OS X installers" may also help.