gcc sur Mac OS X: comment lier les bibliothèques installées avec MacPorts?
J'ai installé gcc 4.6 utiliser macports. Le préfixe est /opt/local
, et j'ai l'devraient inclure le chemin d'accès:
#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.
Cependant, /opt/local/lib
ne semble pas être dans le chemin de recherche des bibliothèques, donc je dois le spécifier avec -L/opt/local/lib
lors de l'utilisation de g++ sur la ligne de commande:
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/
C'est un problème pour les autres bibliothèques installées avec macports. Est-il un moyen facile d'ajouter /opt/local/lib
le chemin de recherche des bibliothèques? J'ai essayé de réglage DYLD_LIBRARY_PATH
en vain. Je suis sous Mac OS X 10.6.8.
DYLD_LIBRARY_PATH
est pour le chargement dynamique au moment de l'exécution, pas le temps de compilation.
Vous devez vous connecter pour publier un commentaire.
dans votre ~/.profil ajouter la ligne suivante:
et exécuter
source ~/.profile
dans le terminal pour recharger votre profil.De cette façon, le commutateur-L sera détectée à partir de gcc/g++ et utilisé automatiquement.
Cela dépend si vous souhaitez lier votre exécutable statique ou dynamique à l'encontre d'une bibliothèque. Sous OS X, vous ajoutez les bibliothèques en tant que source/objet les fichiers comme ceci:
Le meilleur moyen est d'utiliser un système de construction, par exemple CMake (qui peut être installé à partir de macports). Et de fait, il est très facile de trouver des bibliothèques, de créer des bibliothèques dans une manière compatible.
/opt/local/lib
dans gcc du chemin de recherche des bibliothèques. Gcc est construit dans /opt/local donc je m'attend à être, il int chemin de recherche, mais il ne l'est pas.