2016-02-04 13 views
6

Próbowałem zbudować i uruchomić mój pierwszy projekt dla Google Cardboard w Xcode.Jak pozbyć się błędu "Nieznany typ nazwy" __declspec "" w Xcode

Po raz pierwszy napotkałem coś, co zasadniczo mówiło, że mój podpis był niepoprawny i poprosił mnie o zalogowanie się, aby komputer mógł to naprawić (co wydawało się). (Dołączę tę informację w przypadku, gdy jest ona w jakiś sposób związana z błędem.)

Następnie napotkałem błąd Unknown type name '__declspec' i nie mam pojęcia, jak to naprawić.

Ten numer można również znaleźć here, ale nie ma na nie odpowiedzi. A Google search dał około 50 wyników, więc wydaje się stosunkowo rzadkie.

Jaki byłby mój najlepszy sposób postępowania?

Odpowiedz

2

Unity właśnie wydała nową wersję, 5.3.2, aby poradzić sobie z tym problemem.

+1

Nie mogę uaktualnić do wersji 5.3.2, łamie to UI.Text. Zobacz moją odpowiedź na poprawkę, jeśli nie możesz uaktualnić jak ja. – Almo

+1

Uwaga: 5.3.5 naprawił UI.Text, a problem z renderowaniem iOS z 5.2. – Almo

15

Mam poprawkę, jeśli nie można uaktualnić do wersji Unity, która to naprawi.

Znajdź 3 pliki w aplikacji Unity o nazwie il2cpp-codegen.h. Na przykład, w systemie Mac Jedności, są tutaj:

/Applications/Unity5.1.4/Unity.app/Contents/PlaybackEngines/WebGLSupport/BuildTools/Libraries/libil2cpp/include/codegen/il2cpp-codegen.h 
/Applications/Unity5.1.4/Unity.app/Contents/PlaybackEngines/iossupport/il2cpp/libil2cpp/include/codegen/il2cpp-codegen.h 
/Applications/Unity5.1.4/Unity.app/Contents/Frameworks/il2cpp/libil2cpp/codegen/il2cpp-codegen.h 

Znajdź tę linię w tym:

NORETURN static void il2cpp_codegen_raise_exception (Il2CppCodeGenException *ex) 

Usuń "NORETURN" od siebie i zapisywać pliki. Teraz powinno działać.

+1

jesteś ratownikiem życia. –

1

Miałem podobny problem w bibliotece, w której osadzono dll C++.

Jeśli nie chcesz, aby uaktualnić Wierzę, że można wymienić:

#define NORETURN __declspec(noreturn) 

przez

#define NORETURN __attribute__((noreturn)) 
0

Dla każdego pliku, który rzuca błąd, należy usunąć NORETURN z tych linii tylko.

Ale czasami to nie NORETURN problem, ale trzeba by usuwać IL2CPP_NO_INLINE.

To powinno rozwiązać problem.

Powiązane problemy