Code, der für das iPhone-Gerät, aber nicht für den Simulator kompiliert wird

8

Ich benutze C ++, um den algorithmischen Teil einer iPhone-Anwendung zu entwickeln, und ich stoße auf einen seltsamen Fehler. Der Code, den ich habe, kompiliert gut mit gcc-4.2 sowohl unter Linux, auf dem Mac und auf dem iPhone-Gerät, nur nicht auf dem Simulator, was das Debuggen und Testen sehr schwierig macht.

Die Fehlermeldungen aus den Versuchen, für den Simulator zu kompilieren, ähneln einem bekannten Fehler in 4.0.x, obwohl das nicht ganz klar ist, warum ich gcc-4.2 explizit als Standard-Compiler eingestellt habe.

Um den Fehler zu demonstrieren, habe ich das folgende kleine Code-Snippet vorbereitet:

bug.cpp

%Vor%

und versuchte dann, es wie folgt zu kompilieren:

compile.sh

%Vor%

Obwohl ich gcc-4.2 verwende, um für den Simulator zu kompilieren, erhalte ich dieselbe Fehlermeldung wie wenn ich unter gcc-4.0 kompiliere, nämlich:

%Vor%

Irgendwelche Ideen, warum dieser gcc-4.0.x-Bug in den Simulator kriecht, obwohl der Simulator eigentlich gcc-4.2.x verwenden soll, wo dieser Fehler behoben wurde?

    
dzhelil 20.09.2009, 02:31
quelle

4 Antworten

4

Ich bin mir nicht sicher, ob das genau die richtige Antwort ist, aber das würde wahrscheinlich erklären, warum Sie das Verhalten von 4.0 bei der Verwendung von 4.2 sehen:

%Vor%

Es sieht so aus, als würden sie versuchen, den Headersatz 4.0 für beide Versionen zu verwenden, zumindest auf Snow Leopard mit Xcode 3.2.

    
Benno 22.09.2009, 01:06
quelle
0

Ich würde sorgfältig die Header der Bibliothek (STL) überprüfen, auf die der Simulator verweist.

    
Conal 20.09.2009 04:16
quelle
0

Manchmal gibt es Compiler Probleme in Xcode, vielleicht haben Sie ein Problem analog zu dem hier beschriebenen.

UIKit SDK-Fehler

In diesem Fall müssen Sie den Compiler spezifisch für Gerät und Simulator angeben. Ich weiß, dass das keinen Sinn ergibt, aber es hat mein Problem gelöst.

    
nasmorn 21.09.2009 07:46
quelle
0

Es gibt ein Problem mit den Iteratoren von unordered_map, die keine Standardkonstruktoren in gcc-4.0.x haben

Ссылка

Initialisierung bei der Deklaration sollte es beheben:

%Vor%     
Artem Sokolov 21.10.2010 20:56
quelle

Tags und Links