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

Viewed 24906

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.

3 Answers

I found the easiest way is to set C_INCLUDE_PATH and LIBRARY_PATH:

export C_INCLUDE_PATH=/opt/local/include
export CPLUS_INCLUDE_PATH=/opt/local/include
export LIBRARY_PATH=/opt/local/lib
Related