boost::thread richtig benutzen?



  • EDIT:
    in der bjam.exe bekomm ich am Anfang 2 Warnungen:
    - Boost.Python lib wird nicht erstellt
    - Building Boost.Regex with the optional Unicode/ICU support disabled.

    Dann fängt er an. Aber die Konsole spuckt dauernd die Fehlermeldung aus:
    - **Der Befehl "-ftemplate-depth-128" ist entweder falsche geschrieben oder konnte nicht gefunden werden.
    **
    Dabei geht er durch dutzende Verzeichniss/.o-Dateien und immer kommt dieser Fehler.
    Nach etwa 1 Minute hört er auf und das Resultat:
    - failed updating 1400 Targets
    - skipped 316 targets

    In C:\temp\boost sind dann über 100 Verzeichnisse - aber alle leer (0 Byte)
    Hab ich evt. was nicht kopiert, ich hab also nur die "bjam.exe" in "boost_1_34_1" kopiert, sonst nichts.

    Brauche dringend Hilfe !!!



  • @artchi:
    Danke für deine Hilfe - habs berichtigt und gcc als Paramater angegeben = alles wie oben beschriebn (funkt also nicht)



  • Also die ersten zwei Warnings sind doch im Getting Started beschrieben!

    -ftemplate-depth-128 sagt mir leider nichts.

    bjam is the command-line tool that drives the Boost Build system. To build Boost binaries, you'll invoke bjam from the Boost root.

    Hast du das beachtet?



  • Wenn mit dem Boost root das Verzeichnis gemeint ist, indem die exe und 1_34_1 drin sind, dann ja (sprich: cd C:\Program_Files\boost\boost_1_34_1).?
    Findet niemand etwas, was ich falsch gemacht habe ?



  • Bzw. wie verhält sich denn bjam.exe wenn alles richtig läuft, wie lange dauert das normalerweise und wie lautet die Meldung am Ende (wo bei mir failed updating 1400 Targets steht)



  • Naja, das kann schon ne Stunde dauern, wenn du alles bauen lässt. Die End-Meldung wird ähnlich sein, nur halt weniger failed targets. Aber steht auch alles im Getting Started. Da steht wirklich alles erklärt, nur muß man wirklich alles penibel beachten.

    Funktioniert denn auch der Compiler-Aufruf in der Kommandozeile ohne bjam? Also kannst du gcc oder g++ eingeben ohne Fehlermeldung?



  • Kannst auch das hier mal "anlesen" ob es nicht Aufschluss bringt:
    http://magazin.c-plusplus.net/artikel/Build-Systeme Teil 4%3A Boost.Build v2



  • hallo,
    ich glaube genau das ist das Problem, dass ALLES in der getting started steht. Mein Englisch hilft mir nicht wirklich dabei Ordnung zu schaffen. Dein Link hab ich mir angeschaut aber ist das überhaupt das, was ich brauche?
    Schließlich will ich nur Boost.Thread (ich weiß, dass ich das auch einzeln installieren kann) benutzen und nicht bjam selbst bauen 😞

    Und die gcc.exe kann ich so ausführen, ja, wobei er dann sagt "No file input".
    Kann sich jemand meine Schritte einmal genau ansehen und mir dann sagen, was bei mir auf der Strecke geblieben ist:

    Ich hab ein Verzeichnis (C:\Program_Files\boost\boost_1_34_1) in dem auch die bjam.exe ist. Der Compiler (gcc.exe) befindet sich allerdings in C:\Programme\CodeBlocks\bin. Ich führe die cmd.exe aus und wechsel in das Verzeichnis boost_1_34_1 und führe bjam wie folgt aus:
    bjam --build-dir=C:\temp\boost --toolset=gcc
    aber das klappt einfach nicht, ich sehe nur dauernd failed, failed, failed und letzendlich erstellt er auch nur 190 Verzeichnisse im angegebenen C:\temp\boost

    Was mach ich falsch ???



  • Auch auf die Gefahr hin, Eulen nach Athen zu tragen: Du musst nich unbedingt Jam verwenden, um Boost Libraries zu bauen.

    Ich z.B. habe die Thread Library in meinem Projekt als statische Library eingebunden, und dazu lediglich im Ordner "C:\...\C++\boost\libs\thread\src" ein Eclipse CDT static library-Projekt eröffnet.

    Fix kompiliert, kopiert und ins eigentliche Projekt gelinkt, und schon kannst du weiterprogrammieren.

    Wenn du die Library so dringend brauchst, kann ich dir dieses manuelle Vorgehen wärmstens empfehlen. Mit Jam kannst du dich auch ein andermal herumschlagen 😉 .

    Greeetz Kessi



  • Also ich weiß ja nicht. Warum soll das mit bjam nicht funktionieren? Jeder andere kriegts auch hin. Ich habe den BBv2-Artikel oben gepostet, das ist eine deutsche Anleitung, die nun wirklich jeder verstehen sollte. Aber ausprobieren muß man das schon noch selbst. Das kann ich ja wohl auch noch schlecht übernehmen. Aber wenn man sich damit nicht beschäftigt, wird es auch nicht zu einer Lösung kommen. Der Artikel von mir ist vielleicht in einer halben Stunde durch gearbeitet. Und man muß ihn nicht mal komplett durcharbeiten. Reicht schon 50% davon, dann hat man die Basics von BBv2 verstanden und kann dann vielleicht eher den Fehler beim Bauen von Boost nachvollziehen.



  • Mit C++11 hat man Threads in der Standardbibliothek. Ich weiss nicht, ob das dein g++ auf Windows kann, aber Visual Studio 2012 kann es.

    < 💡 >


Anmelden zum Antworten