Boost in android ndk mit Windows verwenden

8

Ich versuche, Boost-Bibliothek mit Android ndk in Eclipse mit Windows zu verwenden. Ich habe versucht, dieses Tutorial

zu folgen >

Ich bin in dem Schritt mit "bjam" -Befehl in Cygwin stecken.

bjam --without-python - ohne-serialisierung toolset = gcc-android4.4.3 link = statisch runtime-link = statisch target-os = linux --stagedir = android

Fehler: bjam-Befehl nicht gefunden.

Was ist bjam? Auch ich habe den Boost 1.53 entlang ndk r8e benutzt. Kann mir bitte jemand dabei helfen?

    
user2508941 16.07.2013, 04:24
quelle

1 Antwort

18

Android NDK ist nicht länger abhängig von Cygwin, daher können Sie Boost mit dem NDK über die Windows-Eingabeaufforderung ( cmd ) erstellen.

Um Boost.Build zum NDK zu machen, editieren Sie die Datei boost\tools\build\v2\user-config.jam und hängen Sie den folgenden Text an:

%Vor%

Sicher, anstelle von c:/android-ndk-r8e müssen Sie den richtigen Speicherort des NDK auf Ihrem PC setzen.

Außerdem können Sie anstelle von android-9 eine neuere Plattform-API auswählen.

Beachten Sie auch, dass das NDK mehrere Werkzeugketten bereitstellt und die obigen Einstellungen auf gcc-4.7 zeigen. Wenn Sie Boost mit einer anderen Werkzeugkette aufbauen möchten, ändern Sie arm-linux-androideabi-4.7 in den entsprechenden Pfad.

Nachdem Sie die Konfiguration in user-config.jam abgelegt haben, öffnen Sie cmd , cd in dem Verzeichnis, in dem sich Boost befindet, und rufen Sie bootstrap auf. Rufen Sie dann b2 wie folgt auf (Beispiel):

b2 --without-python --without-serialization threading=multi link=static runtime-link=static toolset=gcc-android target-os=linux threadapi=pthread --stagedir=android stage

UPDATE : Ab 11/2015 scheinen ältere NDK-Toolchains Probleme mit den neueren Boost-Versionen zu haben, was zu einem Absturz des Compilers führt. Daher sollten Sie einen neueren Compiler verwenden. Ändern Sie dazu einfach jedes 4.7 Vorkommen im obigen Skript auf 4.9. Außerdem lohnt es sich, mit einer neueren Android-API (z. B. andoroid-9 - & gt; Andoroid-16 oder so) zu kompilieren.

    
Igor R. 16.07.2013, 09:00
quelle