2010-09-09 24 views
18

Mam zmodernizowane iOS SDK do nowo wydany 4.1 i teraz mam następujący błąd podczas budowania mojego app:Dziwny problem po aktualizacji do iOS 4.1 SDK

/DeveloperBeta/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.1.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGPDFContext.h:60:23  

/DeveloperBeta/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.1.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGPDFContext.h:60:23: error: expected function body after function declarator 

Patrząc na tej linii w .h złożyć widzę następujące:

CG_EXTERN void CGPDFContextAddDocumentMetadata(CGContextRef context, CFDataRef metadata) CG_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_0); 

naprawdę ciekawą rzeczą jest określenie __MAC_10_7 który wydaje się nie być nigdzie zdefiniowane. Ten błąd występuje podczas wstępnego kompilowania pliku .pch w mojej aplikacji.

Co ciekawe, kompiluje się prosta aplikacja na świecie.

Każdy pomysł, co mogę zrobić?

Z góry dziękuję!

Stelian

+0

Huh. Dokument zmiany interfejsu API mówi "brak zmian" w Core Graphics. MAC_10_7 nie powinien robić różnicy. Nic nie widzę na forach Apple, więc logowałem błąd w Apple i sprawdzałem, co mówią. –

+0

Mam bardzo podobny problem. Dostaję go po uaktualnieniu do iOS 4.1 SDK pochodzącego z wersji 4.0.2 SDK. –

+0

Mam bardzo podobny problem. Dostaję go po uaktualnieniu do iOS 4.1 sdk pochodzącego z 4.0.2 sdk. Otrzymuję 11 błędów w projekcie, który kompilował się dobrze. Błędy występują w plikach CG * .h. Ten sam rodzaj błędów, niektóre zmienne nie są zdefiniowane, jeśli pamiętam, IPHONE_ czegoś nie można przeanalizować. Więcej szczegółów, gdy tylko znajdę się obok komputera Mac. Interesujące jest to, że jeśli utworzę nowy projekt i skopiuję pliki, to będzie on budował, ale uruchomiona aplikacja, brakuje niektórych widoków (dziedziczących UIVIEW i UITABLEVIEW). –

Odpowiedz

42

Jest to znany błąd pakietu SDK iOS 4.1 i budynek korzystający z LLVM dla iPhone'a Simulatora. Możesz o tym przeczytać na stronie this thread na forach programistów Apple.

Zalecanym rozwiązaniem jest dodanie następujących ustawień do Other C Flags w ustawieniach kompilacji projektu: -D__IPHONE_OS_VERSION_MIN_REQUIRED=040100 gdzie zastąpiono 040100 docelową wersją wdrożenia (na przykład 030000 dla wersji 3.0).

+0

Naprawiono to dla mnie - otuchy –

+0

Naprawiono go także dla mnie Wielkie dzięki! –

+0

Mam błędy podczas używania np. 030100 (dla 3.1), zmieniono na 30100, co działa dobrze! – avocade

0

Może powinno być budowanie z najnowszych Xcode 4, jest to wymóg? MAC_10_7 zostałby zdefiniowany w nagłówkach systemowych dostarczanych z kompilatorem. Zgaduję, że może być w SDK, ale myślę, że nie. Zgaduję, że to jest, gdy budujesz dla symulatora.

3

Mam ten problem podczas korzystania z kompilatora LLVM. Spróbuj przekompilować używając GCC, a problem (dla mnie) zniknie.

Będę kontynuować dochodzenie, aby ustalić, czy jest to ogólny problem z toolchainami, czy jest to specyficzne dla mojej konfiguracji.

--update:

Tak to wygląda na problem z brzękiem. LLVM GCC 4.2 działa dobrze.

Nadal uważam, że jest to prawdopodobnie problem z moją konfiguracją. Nawet pusty projekt nie będzie dla mnie kompilowany pod LLVM CLANG 1.5.

--update 2:

Więc wydaje się, że ustawienie minimalna wymagana wersja nie jest honorowane w ustawieniach informacji projektowych. Mam ręcznie ustawić go poprzez:

inne c Flagi: -D__IPHONE_OS_VERSION_MIN_REQUIRED = 031300

(dla minimum iOS 3.1, oczywiście - jeśli wymaga nowszej wersji następnie można użyć 040100 do wersji 4.0)

To wydaje się być tylko problem symulatora z CLANG/LLVM. Kompilowanie dla urządzenia bezpośrednio wydaje się działać dobrze.

+0

Kompilacja dla urządzenia zamiast symulatora działa. – toofah

+0

Nawet z minimalną wymaganą flagą ustawioną w "Innych flagach C", nie mogę uruchomić tego symulatora. :( – toofah

Powiązane problemy