boost::asio Boost neu eingerichtet->libboost fehlt?



  • Mondmann schrieb:

    So steht es in der Doku.
    Warum bekomme ich dann die Fehlermeldungen?
    Finder der irgendwas noch nicht???????

    Header von asio eingebunden? C++-Compiler benutzt?



  • LordJaxom schrieb:

    Mondmann schrieb:

    So steht es in der Doku.
    Warum bekomme ich dann die Fehlermeldungen?
    Finder der irgendwas noch nicht???????

    Header von asio eingebunden? C++-Compiler benutzt?

    Ja.

    @Artchi .

    Ich weiß und das habe ich ja auch...die 16 Fehlermeldungen kommen trotzdem und die Libs sucht er auch trotzdem....



  • Also ich habe eigentlich alles beachtet, was in der Doku von boost und asio steht.
    Der Pfad zum asio-include

    Der Pfad zum boost_134_1.
    Das zusätzliche include verzeichns boost\1_34_1\lib und den
    #define DBOOST_ALL_NO_LIB

    Oder wo sonst soll ich das DBOOST_ALL_NO_LIB Teil hinstecken?

    If you want to add the source directly to your project then define BOOST_REGEX_NO_LIB to disable automatic library selection.



  • Mondmann schrieb:

    ...Das zusätzliche include verzeichns boost\1_34_1\lib ...

    Ich hoffe du hast dich hier nur verschrieben. Nicht als zusätzliches Include Verzeichnis, sondern Bibliotheksverzeichnis.
    In VC wäre es unter den Projekteinstellungen Linker/Allgemein/Zusätzliche Bibliotheksverzeichnisse (Nicht wie bei Includepfaden unter C++).

    Und wenn du wie ich tippe Windows & VC verwendest würde ich, um die Abhängigkeiten zu der Boostversion zu reduzieren in den Systemeinstellung als Umgebungsvariable dein Boostverzeichnis eintragen (Bei mir nennt sich die Variable z.b. BOOST_DIR). Und in den zusätzlichen Includeverzeichnissen $BOOST_DIR/ und unter zusätzliche Bibliotheksverzeichnisse $BOOST_DIR/lib hinzufügen. Dann musst du mit dem Wechsel der Boostversion zumindest nur die Umgebungsvariable anpassen...

    cu André



  • Ja habe ich..natürlich Bibliotheksverzeichnis...das stimmt auch.

    Trotzdem passt noch was nicht..hm...also es kann ja nur an den Einstellungen liegen!
    Wie zu 99% wird das Problem vor dem PC sein 😉
    Werd nochmal genau alles lesen und ausprobieren.
    Das mit der Umgebungsvariable ist ne sehr gute Idee, vielen Dank dafür.

    Danke auch an alle die mir mal wieder geholfen haben, ich hoffe ich kann da mal wenigestens ein Stück zurückgeben.

    Ich werde dann berichten.

    Grüße Mondmann



  • So jetzt habe ich flugs alles gelöscht und komplett neu installiert und nun gehts.

    Nur habe ich meine Fehlermeldung von oben wieder:

    Fehler 5 error C3083: "asio": Das Symbol links neben "::" muss ein Typ sein. e:\source\visualc\pep\inc\def.h 39
    Fehler 6 error C3083: "ip": Das Symbol links neben "::" muss ein Typ sein. e:\source\visualc\pep\inc\def.h 39
    Fehler 7 error C2039: 'tcp': Ist kein Element von 'boost' e:\source\visualc\pep\inc\def.h 39
    Fehler 8 error C2873: 'tcp': Das Symbol kann nicht in einer using-Deklaration verwendet werden e:\source\visualc\pep\inc\def.h 39

    und zwar habe ich nur das hier geschrieben:

    using boost::asio::ip::tcp;
    

    Das seltsame:
    Lasse ich boost:: weg also so:

    using asio::ip::tcp;
    

    dann kommen die Meldungen nicht.
    Ebenso bei einem Beisplei:

    boost::asio::io_service io_service;
    

    Kommen Fehler. Lasse ich auch hier das boost:: weg, gehts ohne Fehler durch bekomme dann aber nachher Probleme, hier zb:

    boost::system::error_code error = boost::asio::error::host_not_found;
    

    Da kennt er system nicht.
    Also irgendwas ist noch oberfaul.

    Kann das jemand erklären?



  • Hast du mal ein frisches Projekt angelegt und wirklich nur eine cpp-Datei, eine main(), ein Include und ein using boost::asio::ip::tcp;?

    Und warum machst du eigentlich in einem Header ein using namespace rein?



  • Ich habs: es gibt eine boost::asio library und eine asio...ohne boost.
    Ich habe mir die ohne boost geladen, aber in der Doku für boost:.asio gelesen.

    😡
    Was ist denn da der Unterschied?



  • Ha ha ha! Das müsste mir mal passieren. 😃
    ASIO gabs ja schon bevor es nach Boost reinkam. Anscheinend pflegt der Christoph Kohlhoff beide parallel und ändert dann nur die Namespaces.



  • Artchi schrieb:

    Ha ha ha! Das müsste mir mal passieren. 😃

    🤡

    Tja einem Anfänger muss das wohl passieren:-)

    Danke für Deine und Eure Hilfe...

    Was ist denn nun besser bzw. welches wird in Zukunft besser weiterentwickelt?



  • Hem, beide werden sicherlich auf gleichem Stand sein. Deshalb dürfte keines besser sein als das andere. Und es sieht ja auch so aus, als ob es in Zukunft dann noch eine dritte geben wird. :p Nämlich im Namespace std::tr2. ⚠

    Rein vom Komfort her würde ich die asio-Variante nehmen, da sind die Namespace-Schachtelungen so schön kurz. Aber es kann auch sein, das wenn asio dann endgültig im orig. Boost-Download rein kommt (1.35.0?), die Entwicklung nur dort weiter geht? Keine Ahnung, ist nur Spekulation von mir.



  • Mondmann schrieb:

    Was ist denn nun besser bzw. welches wird in Zukunft besser weiterentwickelt?

    Ich würde mich im Zweifel an boost halten, da boost ja ohnehin noch viel mehr mit sich bringt, und auch eine sehr gute Unterstützung hat (Dann ist man wenigstens einheitlich was Namensräume angeht). Was die Unterstützung angeht, gehe ich auch nicht davon aus das sich dies in naher Zukunft ändern wird. Zum einen kommt einiges aus Boost in den nächsten C++ Standard (bzw. in die STL vom nächsten Standard) und zum anderen gilt boost als eine sehr wichtige C++ Bibliothekssammlung...

    (Davon abgesehen wiederhole ich hier etwas das oben angedeutet wurde: Niemals using in Headern verwenden).

    cu André


Anmelden zum Antworten