Создание фреймворков для iOS в комплекте с unity data и его библиотекой

#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, похоже, забыли включить заголовок, объявляющий эту функцию. Вы можете либо объявить это самостоятельно, либо просто проигнорировать предупреждение.