Как избавиться от ошибки "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" из каждого и сохраните файлы. Теперь это должно сработать.
у меня была аналогичная проблема в библиотеке, которая встраивает dll c++.
Если вы не хотите обновлять, я считаю, что вы можете заменить:
#define NORETURN __declspec(noreturn)
by
#define NORETURN __attribute__((noreturn))
для каждого файла, который бросает ошибку, нужно удалить NORETURN только из этих строк.
но иногда это не NORETURN проблема, но нужно было бы удалить IL2CPP_NO_INLINE.
Это должно решить проблему.