gcc в Mac OS X: как связать библиотеки, установленные с MacPorts? - PullRequest
11 голосов
/ 18 июля 2011

Я установил gcc 4.6, используя macports.Префикс /opt/local, и я получаю ожидаемый путь включения:

#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.

Однако /opt/local/lib, похоже, не находится в пути поиска библиотеки, поэтому я должен указать его с помощью -L/opt/local/lib при использовании g ++ в командной строке:

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/

Это проблема для других библиотек, установленных с macports.Есть ли простой способ добавить /opt/local/lib в путь поиска библиотеки?Я попытался установить DYLD_LIBRARY_PATH безрезультатно.Я использую Mac OS X 10.6.8.

Ответы [ 2 ]

7 голосов
/ 17 октября 2011

в вашем ~ / .profile добавьте следующую строку:

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

и запустите source ~/.profile в терминале для перезагрузки вашего профиля.

Таким образом, ключ -Lбудет обнаружен из gcc / g ++ и использован автоматически.

2 голосов
/ 08 августа 2011

Это зависит от того, хотите ли вы связать свой исполняемый файл динамически или статически с библиотекой.Под OS X вы добавляете библиотеки в виде исходных / объектных файлов, например:

 Dynamic: g++ -Wall -o myexecutable myfile.cpp /path/to/library.dylib
 Static: g++ -Wall -o myexecutable myfile.cpp /path/to/library.a

. Лучший способ - использовать систему сборки, например, CMake (которую можно установить из macports).И позволяет очень легко находить библиотеки, создавать библиотеки в кроссплатформенном виде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...