gcc on Mac OS X: how to link libraries installed with MacPorts?

juanchopanza picture juanchopanza · Jul 18, 2011 · Viewed 23.1k times · Source

I have installed gcc 4.6 using macports. The prefix is /opt/local, and I get the expected include path:

#include "..." search starts here:
#include <...> search starts here:  
/opt/local/include/gcc46/c++/  
/opt/local/include/gcc46/c++//x86_64-apple-darwin10  
/opt/local/include/gcc46/c++//backward  
/opt/local/lib/gcc46/gcc/x86_64-apple-darwin10/4.6.1/include  
/opt/local/include  
/opt/local/lib/gcc46/gcc/x86_64-apple-darwin10/4.6.1/include-fixed  
/usr/include  
/System/Library/Frameworks  
/Library/Frameworks End of search list.

However, /opt/local/lib doesn't seem to be in the library search path, so I have to specify it with -L/opt/local/lib when using g++ on command line:

Library search paths:
    /opt/local/lib/gcc46/gcc/x86_64-apple-darwin10/4.6.1
    /opt/local/lib/gcc46
    /usr/lib
    /usr/local/lib
Framework search paths:
    /Library/Frameworks/
    /System/Library/Frameworks/

This is a problem for other libraries installed with macports. Is there an easy way to add /opt/local/lib to the library search path? I have tried setting DYLD_LIBRARY_PATH to no avail. I am using Mac OS X 10.6.8.

Answer

Michael Xu picture Michael Xu · Oct 16, 2011

in your ~/.profile add the following line:

export LDFLAGS="-L/opt/local/lib"

and run source ~/.profile in the terminal to reload your profile.

In this way, the -L switch will be detected from gcc/g++ and used automaticaly.