Probleme mit Boost



  • Hallo Experten,

    ich "verstehe" leider wieder einmal einen Fehler nicht: Ich habe die Boost Libraries installiert und das erste Beispiel ausprobiert, welches wie erwartet und problemlos funktioniert:

    #include <boost/lambda/lambda.hpp>
    #include <iostream>
    #include <iterator>
    #include <algorithm>
    
    using namespace boost::lambda;
    
    int main()
    {
    
        typedef std::istream_iterator<int> in;
    
        // solange Zahlen eingegeben werden, werden diese mit 3 multipliziert.
        std::for_each(in(std::cin), in(), std::cout << (_1 * 3) << " " );
        return 0;
    }
    

    Nun wollte ich weiter zum nächsten Beispiel (dem eigentlich wichtigen), nämlich zum Filesystem. Hier erhalte ich aber eine Fehlermeldungen von Eclipse und zwar für:

    #include "boost/filesystem.hpp"
    

    __static_initialization_and_destruction_0(int, int)in kd-tree.o
    ld: symbol(s) not found
    collect2: ld returned 1 exit status
    make: *** [kd-tree] Error 1

    ... als ob er die Datei nicht finden würde! Was ich nicht verstehe ist, dass er

    using namespace boost::filesystem;

    ohne Probleme nimmt und mich auch die Klassen benutzen lässt bspw:

    path my_path;
    

    Ich verstehe leider nicht was mir der Compiler sagen möchte und bitte deswegen um hier Hilfe!

    Danke im Voraus 🙂



  • Konnte nicht schlafen und bin nochmal das Getting Started von der Boost Site durchgegangen... langer Rede kurzer Sinn, Eclipse linked nicht automatisch die Boost Libraries die compiliert worden sind (die allermeisten Boost Libraries sind jedoch Header only).

    Sollte also jemand das selbe Problem haben, hier die Lösung:

    "boost_system" und "boost_filesystem" in die Linkerliste eintragen (Projekt -> Properties -> C/C++ General -> Libraries)


Anmelden zum Antworten