2016-03-31 8 views
2

Ich habe gerade die neueste Version von Android NDK (r11b) auf einer neuen Maschine installiert. Wenn ich meinen C++ Code kompiliere, bekomme ich einen Fehler, dass "__pure2" neu definiert wurde. Es erscheint Include-Datei math.h enthält sys/cdefs.h. Beide definieren bedingungslos ein Makro namens "__pure2" und beide definieren es unterschiedlich.Android Build "__pure2" neu definiert

Derselbe Code funktioniert gut auf meiner älteren Maschine. Nach Untersuchung erscheint es auf meinem Rechner $ ndk \ platforms \ android-9 \ arch-arm \ usr \ include \ sys \ cdefs.h hat keine Definition von "__pure2." Sieht so aus, als ob jemand das kürzlich vorgestellt hat. Frage mich, ob jemand anderes dieses Problem gesehen hat.

Für jetzt habe ich gerade die Makrodefinition in sys/cdefs.h kommentiert. Gibt es einen besseren Weg, das zu beheben? Grüße.

Antwort

3

Es gibt eine bug ticket, die dieses Problem tatsächlich verfolgt. Vielleicht möchten Sie es für weitere Updates folgen, aber es sieht so aus, als ob es in NDK r12 behoben wird. Ich würde wahrscheinlich #ifndef verwenden, um es zu umgehen, wie in den Ticketkommentaren erwähnt.

#ifndef __pure2 
    #define __pure // whatever the original definition is 
#endif