Как избавиться от ошибки "Unknown type name 'declspec' " в Xcode

Я попытался создать и запустить свой первый проект для Google Cardboard в Xcode.

Я впервые столкнулся с чем-то, что в основном сказало, что моя подпись была неправильной, и попросил меня войти, чтобы компьютер мог это исправить (что, похоже,). (Я включаю эту информацию, если она каким-то образом связана с ошибкой.)

затем я столкнулся с ошибкой Unknown type name '__declspec' и понятия не имею как это исправить.

эта проблема также найдена здесь но нет ответ на него. А поиск Google дал около 50 результатов, поэтому это кажется относительно необычным.

каков был бы мой лучший курс действий?

4 ответов


у меня есть исправление, если вы не можете обновить до версии Unity, которая исправляет это.

найдите 3 файла в приложении Unity под названием il2cpp-codegen.h. Например, на Mac Unity они здесь:

/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

найдите эту строку в тех:

NORETURN static void il2cpp_codegen_raise_exception (Il2CppCodeGenException *ex)

удалите "NORETURN" из каждого и сохраните файлы. Теперь это должно сработать.


Unity только что выпустила новую версию 5.3.2 для решения этой проблемы.


у меня была аналогичная проблема в библиотеке, которая встраивает dll c++.

Если вы не хотите обновлять, я считаю, что вы можете заменить:

#define NORETURN __declspec(noreturn)

by

#define NORETURN __attribute__((noreturn))

для каждого файла, который бросает ошибку, нужно удалить NORETURN только из этих строк.

но иногда это не NORETURN проблема, но нужно было бы удалить IL2CPP_NO_INLINE.

Это должно решить проблему.