c++ boost:: sistema de archivos referencia no definida a `boost:: filesystem3:: path:: root_name() const ''
g++ (1)
Sigo corriendo a través de errores cuando intento compilar código que utiliza la biblioteca boost :: filesystem. No entiendo ninguna de las salidas del compilador que estoy obteniendo. Aquí está mi código copiado 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;
}
Tengo Ubuntu 11.10 y he instalado libbost-dev y g ++. Así es como se ve el terminal:
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
¿Qué estoy haciendo mal?
Tienes que enlazar con -lboost_filesystem -lboost_system
. El sistema de archivos Boost no es una biblioteca de solo encabezado; Más bien, depende de componentes compilados.