c++ boost::filesystem undefined reference to `boost::filesystem3::chemin d'accès::root_name() const'
Je continuer à courir à travers les erreurs lorsque vous essayez de compiler le code qui utilise le boost::filesystem de la bibliothèque. Je ne comprends pas tout le compilateur sorties que j'obtiens. Voici mon code copié à partir de http://www.highscore.de/cpp/boost/dateisystem.html#dateisystem_pfadangaben:
#include <boost/filesystem.hpp>
#include <iostream>
int main(){
boost::filesystem::path p("C:\\Windows\\System");
std::cout << p.root_name() << std::endl;
std::cout << p.root_directory() << std::endl;
std::cout << p.root_path() << std::endl;
std::cout << p.relative_path() << std::endl;
std::cout << p.parent_path() << std::endl;
std::cout << p.filename() << std::endl;
}
J'ai Ubuntu 11.10 et j'ai installé libbost-dev et g++. C'est ce que le terminal ressemble:
sam@sam-MT6707:~/Dokumente/Programming/Projekte/FTP-abgleicher$ g++ -o pr3 pr3.cpp
/tmp/ccrN7yHl.o: In function `main':
pr3.cpp:(.text+0x3b): undefined reference to `boost::filesystem3::path::root_name() const'
pr3.cpp:(.text+0x7e): undefined reference to `boost::filesystem3::path::root_directory() const'
pr3.cpp:(.text+0xc1): undefined reference to `boost::filesystem3::path::root_path() const'
pr3.cpp:(.text+0x104): undefined reference to `boost::filesystem3::path::relative_path() const'
pr3.cpp:(.text+0x147): undefined reference to `boost::filesystem3::path::parent_path() const'
pr3.cpp:(.text+0x18a): undefined reference to `boost::filesystem3::path::filename() const'
pr3.cpp:(.text+0x1e8): undefined reference to `boost::filesystem3::path::stem() const'
pr3.cpp:(.text+0x22b): undefined reference to `boost::filesystem3::path::extension() const'
/tmp/ccrN7yHl.o: In function `__static_initialization_and_destruction_0(int, int)':
pr3.cpp:(.text+0x364): undefined reference to `boost::system::generic_category()'
pr3.cpp:(.text+0x36e): undefined reference to `boost::system::generic_category()'
pr3.cpp:(.text+0x378): undefined reference to `boost::system::system_category()'
/tmp/ccrN7yHl.o: In function `boost::filesystem3::path::codecvt()':
pr3.cpp:(.text._ZN5boost11filesystem34path7codecvtEv[boost::filesystem3::path::codecvt()]+0x7): undefined reference to `boost::filesystem3::path::wchar_t_codecvt_facet()'
collect2: ld gab 1 als Ende-Status zurück
^Translation of last line: ld returned an end status of 1
Ce que je fais mal?
La prochaine fois, merci de mettre en évidence votre code et frapper
Tag
Ctrl+K
ou utiliser le {}
bouton dans l'éditeur.Tag
german
supprimés dans le cadre de la 2012 de nettoyage.OriginalL'auteur KG6ZVP | 2011-11-01
Vous devez vous connecter pour publier un commentaire.
Vous avez un lien avec
-lboost_filesystem -lboost_system
. Stimuler le système de fichier n'est pas un en-tête uniquement de la bibliothèque; il dépend plutôt de composants compilés.J'ai ajouté -lboost_filesystem à la fin de ma ligne de commande: g++ -o pr3 pr3.cpp -lboost_filesystem Cependant, je suis maintenant obtenir la sortie suivante: /usr/bin/ld: /tmp/ccKa219G.o: undefined reference to symbole 'boost::system::system_category()' /usr/bin/ld: remarque: le 'boost::system::system_category () est définie dans le DSO /usr/lib/libboost_system..1.46.1 donc, essayez de l'ajouter à l'éditeur de liens de ligne de commande /usr/lib/libboost_system..1.46.1: ne peut pas lire les symboles: opération non Valide collect2: ld a retourné une fin de l'état de 1
Également ajouter
-lboost_system
.boost.org/doc/libs/1_47_0/more/getting_started/... en vertu de l'en-tête uniquement les bibliothèques de vous dire quels sont ceux qui ont besoin de la bibliothèque de références.
J'étais littéralement sur le point de demander une référence pour l'ensemble de ce coup de pouce de la compilation de trucs quand j'ai vu votre lien. Merci!
OriginalL'auteur Kerrek SB