2009-07-25 10 views
2

J'ai créé un projet XCode et j'ai ajouté "/ opt/local/include/boost" au chemin de recherche d'en-tête et "/ opt/local/lib" au chemin de recherche de la bibliothèqueerreur de liaison lors de l'utilisation de la bibliothèque boost sur MacOSX

Mais j'ai encore cette erreur:

 
boost::system::get_generic_category()", referenced from: 
    __static_initialization_and_destruction_0(int, int)in main.o 
    __static_initialization_and_destruction_0(int, int)in main.o 
    __static_initialization_and_destruction_0(int, int)in main.o 

Et dans mon/opt/local/lib, je trouve cela (je suppose que la bibliothèque est Boost.System):

 
-rw-r--r-- 2 root admin  80600 Jul 23 16:31 libboost_system-mt.a 
-rwxr-xr-x 2 root admin  30988 Jul 23 16:30 libboost_system-mt.dylib* 

Pouvez-vous s'il vous plaît dis-moi ce qui me manque? L'ajout du chemin de la bibliothèque n'est pas suffisant.

+1

Vous n'avez pas fourni de description d'erreur. Est-ce "symbole indéfini"? – stepancheg

Répondre

5

Cela garantit que chaque fois que vous lui indiquerez de lier à une bibliothèque, il recherchera cette bibliothèque dans le chemin spécifié ainsi que tous les chemins par défaut.

Alors vous devez également dire en fait le compilateur de lier à la bibliothèque, avec le drapeau

-lboost_system-mt 

Sous Windows, Boost prend en charge autolinking par défaut - qui est, si vous venez de comprendre les en-têtes corrects, il tentera également de se lier aux bibliothèques (en utilisant un MSVC#pragma). Sur d'autres plates-formes, vous devez lier manuellement à la bibliothèque.

2

Pour créer un lien vers des bibliothèques dans XCode, faites un clic droit sur la "cible" qui utilise Boost et choisissez pour obtenir les informations. Dans la liste inférieure "Bibliothèques liées" ajoutez les fichiers boost dylib en cliquant sur le +

Espérons que cela a aidé.

3

Mise à jour: Pour XCode 4, vous devrez ajouter les fichiers .dylib pour l'éditeur de liens. Dans XCode, utilisez l'option 'Project Navigator' dans le volet 'Navigator'. Puis cliquez sur votre projet, puis cliquez sur votre cible, puis sélectionnez l'onglet «Construire les phases» et appuyez sur le bouton «+» dans le groupe «Lier les binaires avec les bibliothèques». Vous devrez ajouter ce que libboost_ .dylib essayera d'utiliser.

Adding Link Binary in XCode4 for Boost

Questions connexes