#objective-c #cocoa-touch #xcode #unity3d
#objective-c #cocoa-touch #xcode #unity3d
Вопрос:
Это касается создания фреймворка в iOS, поскольку у меня есть пакет unity, который я хочу создать, с библиотекой хранения и связывания данных из Unity в качестве libiPhone-lib.a. Таким образом, без добавления какой-либо библиотеки в целевой пакет, компиляция работает нормально, если я включаю файл libiPhone-lib.a, он генерирует предупреждение как:
предупреждение: неявное объявление функции ‘UnitySendMessage’
UnitySendMessage — это функция, которая вызывается из выделенного фреймворка libiPhone-lib.a.
Любые предложения по этому поводу будут действительно оценены.
Спасибо.
Ответ №1:
Эта ошибка означает, что в файле, где она произошла, UnitySendMessage был вызван без того, чтобы компилятор увидел объявление функции. Вам нужно отредактировать файл и #импортировать заголовок, содержащий UnitySendMessage (или #включить, если это файл .c).
Комментарии:
1. Idz, я пытался найти объявление этой функции, однако выяснилось, что Unity включила это в свой набор библиотек. Итак, компоновка происходит следующим образом… Мое основное приложение -> фреймворк в комплекте с активами Unity -> Unity в комплекте со своими собственными наборами библиотек. Есть предложения по этой топологии? Спасибо.
2. Это ошибка времени компиляции, а не ошибка ссылки. В полном сообщении об ошибке должны быть указаны файл и номер строки, в которых произошла ошибка. Это файл, который вам нужно отредактировать. В документации к используемому вами фреймворку должно быть указано, в каком заголовочном файле находится
UnitySendMessage
функция.
Ответ №2:
Люди из Unity, похоже, забыли включить заголовок, объявляющий эту функцию. Вы можете либо объявить это самостоятельно, либо просто проигнорировать предупреждение.