Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Julién

Alter Hase

  • »Julién« ist der Autor dieses Themas

Beiträge: 717

Wohnort: Bayreuth

Beruf: Student | Hilfswissenschaftler in der Robotik

  • Private Nachricht senden

1

25.07.2016, 23:36

C++ NDK | STL einbinden

Hi,
für ein Android NDK Projekt bräuchte ich einige Header aus der STL,
u.a. memory und atomic. Leider beschwert sich der Compiler,
dass er diese Header nicht finden kann, obwohl ich C++ 14 als C++ Version
angegeben habe.

Kennt jemand eine Lösung zu diesem Problem?

LG Julien
I write my own game engines because if I'm going to live in buggy crappy filth, I want it to me my own - Ron Gilbert

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

2

26.07.2016, 06:35

Wie genau hast du die denn angegeben? Also sowohl die Header, als auch die Version? Und welche NDK-Version nutzt du?
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Julién

Alter Hase

  • »Julién« ist der Autor dieses Themas

Beiträge: 717

Wohnort: Bayreuth

Beruf: Student | Hilfswissenschaftler in der Robotik

  • Private Nachricht senden

3

26.07.2016, 10:14

Wegen ersterem kann ich noch nichts sagen, da ich zur Zeit das NDK "ausprobiere" und mein geliebtes Qt Build Suite als Build Tool verwende; sobald ich die nötigen Infos dazu finde, werde ich sie posten ;)
Im Moment nutze ich das aktuellste SDK ("android-ndk-r11c"). Bis jetzt habe ich versucht für das Profil "arm64" zu compilieren.

EDIT:
Ok, ich habe die Option gefunden, mit der ich verschiedene Runtimes einstellen kann. Im Moment verwendet ich 'stlport_shared.

EDIT2:
Gut, es funktioniert nun, da ich eine Reihe von Compilerfehler bezüglich Templates bekomme :thumbsup:

EDIT3:
Mit der 'gnustl_shared' funktioniert es jetzt halbwegs. Halbwegs, da das Build System an dieser Stelle anscheinend einen Fehler hat:

Zitat


linking libGFL.Platform.so
Stripping unneeded symbols from libGFL.Platform.so
ERROR: Cannot install files 'C:/Users/Julian/Desktop/Repositories/GFL/android-release/GFL.Platform.android-armv5.15093b8e/stripped-libs/libGFL.Platform.so' and 'C:/Users/Julian/Desktop/Repositories/GFL/android-release/GFL.Platform.android-armv5.15093b8e/libGFL.Platform.so' to the same location 'C:/Users/Julian/Desktop/Repositories/GFL/android-release/install-root/libGFL.Platform.so'.
The following products could not be built for configuration android-release:
GFL.Platform (for profile 'android-armv5')
I write my own game engines because if I'm going to live in buggy crappy filth, I want it to me my own - Ron Gilbert

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Julién« (26.07.2016, 10:34)


BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

4

26.07.2016, 16:55

Qt Build Suite? Nee, sorry, da kann ich dir nicht helfen. NDK-Kram kompiliere ich von Commandline aus. Habe mal VS probiert mit dem Plugin von NVidia, aber die Libs sind inkompatibel, bzw. nicht die wählbar, die ich brauchte.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Julién

Alter Hase

  • »Julién« ist der Autor dieses Themas

Beiträge: 717

Wohnort: Bayreuth

Beruf: Student | Hilfswissenschaftler in der Robotik

  • Private Nachricht senden

5

26.07.2016, 22:06

Das Problem konnte mit der freundlichen Hilfe der Qt-Entwickler behoben werden :thumbup:
Üblicherweise findet sich dieses Fragment im Build-File:

C-/C++-Quelltext

1
2
3
4
Group{
    qbs.install:    true
    fileTagsFilter: product.type
}


Das Problem tritt auf, wenn man 'DynamicLibrary' oder 'StaticLibrary' anstatt 'Product' verwendet,
da die beiden ersteren Items einen weiteren Typ (product.type) setzen.
Der weitere Typ wird benötigt, damit das System einige Dinge bereinigen kann.

Mit dem oben gelisteten Fragment, würde zunächst die 'unbereinigte' Version in den Ordner kopiert werden.
Danach versucht das System die 'bereinigte' Version zu kopieren, was bekanntlich fehlschlägt.

Das Problem konnte ich mit folgendem Snippet lösen:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
Group{
    condition:       !qbs.targetOS.contains('android')
    qbs.install:     true
    fileTagsFilter:  product.type
}

Group{
    condition:       qbs.targetOS.contains('android')
    qbs.install:     true
    fileTagsFilter:  'android.nativelibrary'
}


LG Julien
I write my own game engines because if I'm going to live in buggy crappy filth, I want it to me my own - Ron Gilbert

Werbeanzeige