Setup: Boost

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • Setup: Boost

    Nabend,

    ich versuche seit 6 Stunden Boost zu builden, da es für die aktuellste Version keine BInaries gibt. Umgebungsvariablen, Path und alles ist eingestellt und mehrfach überprüft. Wenn ich nun aber build --toolset=gcc "--prefix=C:\boost" install

    Als Fehlermeldung bekomm ich folgendes:

    Source Code

    1. C:\boost_1_48_0>build --toolset=gcc "--prefix=C:\boost" install
    2. ###
    3. ### "Could not find a suitable toolset."
    4. ###
    5. ### You can specify the toolset as the argument, i.e.:
    6. ### .\build.bat msvc
    7. ###
    8. ### Toolsets supported by this script are: borland, como, gcc, gcc-nocygwin,
    9. ### intel-win32, metrowerks, mingw, msvc, vc7, vc8, vc9, vc10
    10. ###


    Durch Google hab ich einige Lösungsansätze gefunden, indem man die bat-Dateien bearbeitet, was aber allerdings noch nichts gebracht hat.

    Info:
    OS: Windows XP [Version 5.1.2600] 32 Bit Service Pack 3
    Boost: 1.48
    Boost-Jam: 3.1.18
    MinGW: 4.6.1
  • Vornweg, ich hab noch nie MinGW oder Boost verwendet.

    Der Fehler hört sich so an,als ob er bei dir den Compiler nicht findet.
    Hast du MinGW installiert? Oder die "Portable" Version.
    Am besten installierst du es, dann sollten Umgebungsvariablen angelegt werden, woran automatisch erkannt wird wo die Binärys des Compilers sich befinden.

    Hab grad mal die BoostEngine runtergeladen:
    - Bei mir gibt es keine build.bat Datei im boost_1_48_0 Ordner. Oo
    - Nur eine bootstrap.bat. Hab daraufhin einfach F:\boost_1_48_0>bootstrap eingegben
    - Anschliessend hat er anscheinend den Compilervorgang vorbereitet und gesagt ich soll b2 zum compilieren eingeben
    - Was ich dann getan habe und nun Compiliert er das Teil
    - Anscheinend als static Build mit meinem Installierten MSVC Compiler.

    Source Code

    1. The Boost C++ Libraries were successfully built!
    2. The following directory should be added to compiler include paths:
    3. F:/boost_1_48_0
    4. The following directory should be added to linker library paths:
    5. F:\boost_1_48_0\stage\lib


    Hoffe ich du kannst das auf den MinGW übertragen. Eventuell mal auch die Umgebungsvariable PATH checken, dass in dieser auch der Pfad zum MinGW-Compiler eingetragen ist.

    Mfg Rushh0ur
  • Erstmal danke für deine Antwort!

    MinGW hab ich auf meinem PC gehabt, auf den USB-Stick gezogen, PC plattgemacht und dann vom Stick wieder auf den PC gezogen. Liegt dort möglicherweiße die Fehlerquelle? Mit dem Compiler MSVC soll das auch alles funktionieren, aber da ich MS Visual Studio nicht habe erledigt sich das. (Code::Blocks-Fanatiker :D)

    Die build.bat befindet sich auch in dem Verzeichnis boostJam, das man extra runterladen muss, um Boost zu installieren. Zumindest laut meiner Dok. Wenn ich die bootstrap ausführe schließt sich das Konsolenfenster schnell als ich lesen kann.

    Hier die Pathvariable: Path=C:\C++\MinGW\bin;C:\C++\MinGW\libexec\gcc\mingw32\4.6.1;C:\C++\MinGW\bin;C:\C++\MinGW\libexec\gcc\mingw32\4.6.1
  • Die Path-Variable sieht in Ordnung aus.

    Schau mal hier: boost.org/boost-build2/doc/html/bbv2/jam.html
    Da steht man soll einfach nur

    Source Code

    1. build [toolset]

    eingeben.
    Bei dir wäre es dann wohl build gcc.

    PS: Schau dir eventuell noch das build.bat Script im Editor an.
    Da wird zB. bei der automatischen auswahl des Compilers geprüft ob
    C:\\MinGW\bin\gcc.exe exestiert und gegebenfalls ausgewählt.

    Hab mal MinGW4.6.1-2 mal gezogen und bei mir gibts es die gcc.exe gar nicht.
    -> Jetzt weiß ich wieder, warum ich eignetlich MinGW immer meide ... xD
    Aber wie gesagt ich kenn mich damit nicht aus.

    Mfg Rushh0ur
  • Wuhu, Fortschritt :D


    C:\C++\boostJam\boost-jam-3.1.18>build gcc
    ###
    ### Using 'gcc' toolset.
    ###

    C:\C++\boostJam\boost-jam-3.1.18>if exist bootstrap rd /S /Q bootstrap

    C:\C++\boostJam\boost-jam-3.1.18>md bootstrap

    C:\C++\boostJam\boost-jam-3.1.18>gcc -DNT -o bootstrap\jam0.exe command.c compile.c debug.c execnt.c expand.c filent.c glob.c hash.c hdrmacro.c headers.c jam.c jambase.c jamgram.c lists.c make.c make1.c newstr.c option.c output.c parse.c pathunix.c regexp.c rules.c scan.c search.c subst.c timestamp.c variable.c modules.c strings.c filesys.c builtins.c md5.c pwd.c class.c w32_getreg.c native.c modules/set.c modules/path.c modules/regex.c modules/property-set.c modules/sequence.c modules/order.c


    C:\C++\boostJam\boost-jam-3.1.18>.\bootstrap\jam0 -f build.jam --toolset=gcc "--toolset-root= " clean
    ...found 1 target...
    ...updating 1 target...
    ...updated 1 target...

    C:\C++\boostJam\boost-jam-3.1.18>.\bootstrap\jam0 -f build.jam --toolset=gcc "--toolset-root= "
    ...found 48 targets...
    ...updating 2 targets...
    [MKDIR] bin.ntx86
    [COMPILE] bin.ntx86\bjam.exe
    ...updated 2 targets...


    Es wurden 2 neue Ordner erstellt. bin.ntx89 und bootstrap.

    Im bin.ntx89 befindet sich eine Anwendung namens bjam und ihn bootstrap eine Namens jam0. Beide schließen sich aber wieder schnell.

    C:\boost_1_48_0>set PATH="C:\C++\boostJam\boost-jam-3.1.18"

    C:\boost_1_48_0>bjam --toolset=gcc "--prefix=C:\boost" install
    Der Befehl "bjam" ist entweder falsch geschrieben oder
    konnte nicht gefunden werden.

    C:\boost_1_48_0>build --toolset=gcc "--prefix=C:\boost" install
    ###
    ### "Could not find a suitable toolset."
    ###
    ### You can specify the toolset as the argument, i.e.:
    ### .\build.bat msvc
    ###
    ### Toolsets supported by this script are: borland, como, gcc, gcc-nocygwin,
    ### intel-win32, metrowerks, mingw, msvc, vc7, vc8, vc9, vc10
    ###
  • Em sehe grad dass das vollkomen unnötig ist was du machst, da bjam in der Boost Engine integriert ist.
    Sprich wenn du boost buildest dann hast du auch bjam.

    Am einfachsten:
    - boost Bibliothek runterladen.
    - cmd peer Ausführen starten und in den Boost Ordner wechseln
    - bootstrap eingeben
    -> BJAM wird vorbereitet
    - anschließend dein Befehl "bjam --toolset=gcc "--prefix=C:\boost" install" eingeben, wobei der angegeben Pfad der Zielinstallationspfad von der Boost Bibliothek ist
    -> Boost wird an den Angegeben Ort kopiert und compiliert (include und lib Dateien)

    Source Code

    1. cd /D F:\boost_1_48_0
    2. bootstrap
    3. Building Boost.Build engine
    4. Bootstrapping is done. To build, run:
    5. .\b2
    6. To adjust configuration, edit 'project-config.jam'.
    7. Further information:
    8. - Command line help:
    9. .\b2 --help
    10. - Getting started guide:
    11. http://boost.org/more/getting_started/windows.html
    12. - Boost.Build documentation:
    13. http://www.boost.org/boost-build2/doc/html/index.html
    14. bjam --toolset=msvc "--prefix=F:\boost" install
    Display All


    Mfg Rushh0ur
  • Langsam fühl ich mich unfähig :sleeping:

    C:\boost_1_48_0>bootstrap
    Building Boost.Build engine

    Failed to build Boost.Build engine.
    Please consult bootstrap.log for furter di

    You can try to obtain a prebuilt binary fr

    sf.net/project/showfiles.php?gro

    Also, you can file an issue at svn.
    Please attach bootstrap.log in that case.


    bootstrap.txt
    ###
    ### "Could not find a suitable toolset."
    ###
    ### You can specify the toolset as the argument, i.e.:
    ### .\build.bat msvc
    ###
    ### Toolsets supported by this script are: borland, como, gcc, gcc-nocygwin,
    ### intel-win32, metrowerks, mingw, msvc, vc7, vc8, vc9, vc10
    ###


    Edit: Am Compiler kanns nicht liegen, vor 2 tagen hab ich nämlich vxWidget "gebuildet" und das normale kompilieren von Dateien läuft auch

    The post was edited 1 time, last by JaffaCoder ().

  • Man der findet bei dir einfach den f*** MinGW Compiler nicht.
    Am einfachsten wäre es wenn du dein Compiler in den Ordner
    C:\MinGW (\bin\gcc.exe) machst (-> Path Variablen anpassen).

    Oder:
    Öffne mal die bootstrap.bat mit dem Windows Editor und geh zu der Zeile:

    Source Code

    1. call .\build.bat %* > ..\..\..\..\bootstrap.log


    Und änder die mal in

    Source Code

    1. call .\build.bat gcc


    Mfg Rushh0ur
  • Wie ich es hasse X(

    Egal was für eine Datei ich includiere will Boost einfach nicht.

    M:\data\CB Projects\boost\main.cpp|2|schwerwiegender Fehler: boost/filesystem.hpp: No such file or directory|

    Wenn ich die filesystem.hpp über die Konsole kompilieren will kommt, dass er den config.hpp nicht öffnen kann.

    In C::B hab ich das includieren wie folgt gemacht:

    Globale Variablen:
    boost:
    • base: C:\development\boost
    • include: C:\development\boost\include\boost-1_48 (auch schon nur das include Verzeichnis probiert)
      [*lib: ]C:\development\boost\lib


    Im Include-Verzeichnis befinden sich nur Headerdateien und im lib nur *.a-Dateien.


    Hätte das Genie oder sonst noch jemand eine Idee? :D


    Edit: In den BUildoptions hab ich folgendes:
    Linkersetting -> Linklibraries: Alle *.a-Datein
    search-Directories -> Compiler: $(boost.include)
    search-Directories -> Linker: $(boost.lib)
  • Wie sieht deine Ordnerstruktur des Installordners aus?
    Da sollten Ordner wie bin, lib, include enthalten sein.

    Das Problem ist, dass der "includierende" Dateiname an den Includepfad angehängt und wenn die Resultierende Datei nicht exestiert gibts einen Fehler.
    Dazu kommt noch falls die IDE den Pfad nicht prüft dann entsteht sowas:
    C:\development\boost\include\boost-1_48 + boost/filesystem.hpp = C:\development\boost\include\boost-1_48boost/filesystem.hpp

    Versuch einfach zunächst ein projekt zu erstellen in der du nur eine Headerdatei der Boost Library einbindest ohne eine Funktion zu benutzen.
    Und pass die Pfade solange an bis er den Pfad bzw. die Headerdatei findet. Gegeben falls auch nen Ordner umbennen (boost-1_48 -> boost).

    Wenn das Funktioniert alles weitere Einstellen.

    Mfg Rushh0ur
  • Okey, also ich mal einen Dir-Baum zu erstellen :D

    C:\
    -----> development\
    -----------> bosst\
    ------------------> include\
    -----------------------> boost-1_48\
    ----------------------------> boost\
    ------------------------------------> jede Menger Ordner[accumulators, algorithm, archive, asio, assign, bimap, bind, chrono....] und *.hpp-Dateien[aligned_storage.hpp, any.hpp, array.hpp, asio.hpp, assert.hpp.....]

    (auf selber Ebene wie include)
    ------------------> lib\
    -----------------------> jede Mengen *.a-Dateien [libboost_math_tr1-mgw46-mt-1_48.a, libboost_math_tr1-mgw46-mt-d-1_48.a und und und]

    boost_1_48_0 hab ich in boost umbenannt. DIe Variablen dementsprechend angepasst, alle möglichen Kombinationen ausprobiert... nichts passiert. Keine FUnktion verwendet, trotzdem no such file or dictory vom Compiler. Wenn ich jetzt die filesystem.hpp includiere #include<boost/filesystem.hpp> müsste ja durch meine include-Variable C:\development\boost\include\boost folgender Pfad enstehen C:\development\boost\include\boost\boost\filesystem.hpp. Dort liegt auch die Datei... selbst wenn ich den Pfad änder in

    C:\development\boost\include\boost\boost\
    C:\development\boost\include\boost\boost
    C:\development\boost\include\boost\
    C:\development\boost\include\boost
    C:\development\boost\include\
    C:\development\boost\include
  • Okey, hab ich alles geändert. Wenn ich jetzt nun kompilieren will bekomm ich folgende Nachricht: Es scheint, dass dieses projekt noch nicht gebaut wurde. Möchten sie es jetzt bauen? Wenn ich nun OK klicke sagt die KOnsole folgendes:

    mingw32-g++.exe: Fehler: Projects\boost\main.cpp -o obj\Debug\main.o: No such file or directory
    mingw32-g++.exe: schwerwiegender Fehler: keine Eingabedateien
    Kompilierung beendet.
    Process terminated with status 1 (0 minutes, 0 seconds)
    0 errors, 0 warnings

    Die main.o ist abr in dem angegeben Verzeichnis vorhanden.
  • Geht auch nicht mehr. Ich schau mal, ob ich da irgendwo was verstellt hab :S

    Werd den Tag über mal im Chat sein ;)


    Edit: Wenn ich es über die cmd kompilieren will erstell laut meinem Antiviren-System einen Virus :D Wenn ich die Anwendung dann öffnen will, die ich erstellt habe kommt, dass ich keine Berechtigung dazu habe

    The post was edited 1 time, last by JaffaCoder ().