2010-11-27 34 views
1

J'ai le gcc 4.4.5 et la dernière bibliothèque de boost. Je veux utiliser boost spécifiquement pour sa bibliothèque regex. J'ai essayé d'utiliser les fonctions regex C++ intégrées mais apparemment elles ne sont pas encore complètement fonctionnelles. J'ai suivi un tutoriel en ligne pour configurer netbeans.Comment configurer Boost avec Netbeans 6.9 sur Ubuntu

J'ai ajouté/usr/include/boost aux répertoires d'aide au code C++. J'ai ensuite ajouté -lboost_regex-mt à la zone build> linker> options supplémentaires dans la configuration du projet. mais je reçois toujours cette erreur:

/usr/bin/ld: cannot find -lboost_regex-mt 
collect2: ld returned 1 exit status 

Ceci est la commande des thats en cours de création par NetBeans:

g++ -lboost_regex-mt -o dist/Debug/GNU-Linux-x86/examples01 build/Debug/GNU-Linux-x86/main.o 

J'ai aussi essayé de faire avec -lboost-regex et -lboost-regex-st et même erreur, avec seulement le mt changé. J'ai également essayé d'exécuter un fichier en utilisant des objets regex via le terminal mais j'ai quand même eu la même erreur. Quelqu'un peut-il aider avec ce problème? Ou au moins me pointer dans la bonne direction?

Répondre

3

Vous devez définir les «répertoires de bibliothèque supplémentaires» de votre projet afin qu'il sache quels sont les autres répertoires à rechercher dans lesquels vos bibliothèques doivent être liées.

Voici une capture d'écran à partir du site de Netbeans ici: http://netbeans.org/community/magazine/html/03/c++/

alt text

modifier: Notez que cela affectera la commande du compilateur généré pour avoir -L des options qui spécifient des emplacements supplémentaires pour rechercher des fichiers bibliothèque.

+0

qui modifie la commande de compilation en g ++ -lboost_regex-mt -o dist/Debug/GNU-Linux-x86/exemples01 build/Déboguer/GNU-Linux-x86/main.o -L/usr/include/boost qui produit toujours le même erreur. Est-ce que je l'ai fait correctement? J'ai ajouté/usr/include/boost dans la zone des répertoires de bibliothèques supplémentaires –

+0

@Robert - '/ usr/include/boost' sont probablement les fichiers d'en-tête' .hpp'. Vous devez le définir dans le répertoire 'lib' où toutes les bibliothèques de compilation de boost ont été installées. Où ils sont dépend de ce que vous avez fait pour installer. Cela pourrait être dans '/ usr/lib/boost' ou'/usr/local/lib' ou quelque chose comme ça. Comment avez-vous installé Boost sur votre système? – birryree

+0

Je l'ai installé avec: sudo apt-get install bcp –

0

Vous devez indiquer à g ++ où trouver les bibliothèques. Une façon de faire est d'ajouter l'emplacement des bibliothèques de boost à votre LD_LIBRARY_PATH. Notez que ce n'est pas la même chose que les fichiers d'en-tête (les fichiers .hpp dans le répertoire include) que vous avez dit avoir déjà inclus dans votre projet.

+0

Comment ferais-je cela? Ce serait un problème de gcc correct? Netbeans est configuré correctement, c'est juste que je dois modifier les paramètres pour le compilateur? –