2013-10-03 10 views
6

Ich erhalte die folgende Fehler verwenden, wenn sie versuchen mein Projekt zu bauen mit XCode 5.'FLT_EPSILON' für 64-Bit-iPhone 5S

Use of undeclared identifier 'FLT_EPSILON' 

Ich habe überprüft, und FLT_EPSILON (es zeigt sich braun in Xcode) , ist in der Datei "float.h" definiert.

Was mache ich falsch?


Dies ist der Code, wo FLT_EPSILON verwendet wird:

if (someTimeInterval < 0.03 - FLT_EPSILON) { 
    someTimeInterval = 0.1; 
} 

Ich fand heraus, dass dies geschieht, weil ich versuchte, es auf dem iPhone 5S-Simulator zu testen (64 BIT) .

Ich verstehe nicht so gut die Unterschiede bei der Verwendung des 64-Bit-Simulators. Was sollte ich anstelle von FLT_EPSILON einbeziehen - und warum funktioniert es nicht mit 64 Bit?

+0

Fügen Sie "float.h" ein? – user1118321

+0

Um zu verdeutlichen, "float.h" ist Teil des iOS SDK, also nehme ich an, dass ich es nicht einschließen muss. Und das funktionierte einwandfrei auf Xcode 4. – GangstaGraham

+0

@ user1118321 siehe die aktualisierte Frage – GangstaGraham

Antwort

1

Ich weiß nicht, warum dies nicht nur für 64-Bit-Geräte funktioniert.

Aber hier ist die Lösung:

Stellen Sie sicher, MobileCoreServices.framework installiert ist, und dann sollte es in Ordnung

Import <MobileCoreServices/MobileCoreServices.h>

+0

Hat nicht für mich gearbeitet –

2

Das ist für mich gearbeitet arbeiten:

#ifndef FLT_EPSILON 
    #define FLT_EPSILON __FLT_EPSILON__ 
#endif 

(so ist es definiert in float.h)

3

Die Lösung besteht darin, Module in Ihrem Projekt zu deaktivieren. Um dies zu tun, gehen Sie zu Build-Einstellungen und setzen Sie "Enable Modules" auf "No".

Das ist ein clang Bug. Module (-fmodules Flag) sind immer noch experimentelle Funktion und wenn Sie Objective-C und C/C++ Module mischen, kann es einige Fehler geben.

mein Demo-Projekt bei Github Siehe: TestEpsilon

Erste Ziel Verwendung Module, die zweiten nicht. Um sicherzustellen, dass wir "sauber" bauen, habe ich DerivedData und ModulesCache Cleanup in Pre-Build-Skripten hinzugefügt.

Verwandte Themen