Apple Core ML не компилируется со смешанным быстрым и объективным C - PullRequest
0 голосов
/ 18 марта 2019

Я - разработчик на C ++ / Python, который недавно начал изучать Swift и пробовал программировать на iOS.У меня есть модель машинного обучения, которую я преобразовал в формат Apple Core ML, и успешно смог использовать ее в приложении для iOS в Swift, например, при инициализации модели с помощью:

var model = MODELNAME ()

Теперь у меня есть несколько существующих кодов C ++, которые я хочу интегрировать в приложение.Простой способ сделать это - создать мостовой файл .mm в Obj-C и обернуть код C ++ в Obj-c.Сам по себе обертка Obj-C и коды C ++ работают без проблем со Swift, и я смог использовать функции C ++ в приложении iOS Swift.

Однако я заметил довольно запутанную ошибку, когда попытался загрузить модель Core ML в смешанном проекте Swift / Objective-C.Если я добавлю исходные коды .m - даже пустые файлы - в проект (который автоматически создает файл моста Project-Bridging-Header.h), компилятор сообщит об ошибке "Использованиенеразрешенный идентификатор MODELNAME "для модели Core ML в коде Swift. На Mac простое добавление одного файла .m приведет к сбою проекта.В iOS можно добавить один файл .m, но добавление двух файлов .m приводит к появлению одинаковой ошибки.Обратите внимание, что только исходные файлы .m (и, соответственно, .mm, .cpp) влияют на компилятор, а заголовочные файлы - нет.

Я довольно запутался с этой ошибкой ... (поскольку каким-то образомогромное количество источников Obj-C в списке «скомпилированных источников» XCode, а не их содержимое, влияет на возможность компиляции модели Core ML).Я предполагаю, что это может быть связано с тем, как XCode автоматически генерирует заголовок MODELNAME.h для моделей Core ML (которые обычно не нужно явно импортировать в коде), и это каким-то образом мешает заголовкам мостового соединения Obj-C Project-Briding-Header.h и исходные коды Obj-C.

Могу ли я спросить, сталкивался ли кто-либо с подобными проблемами или может иметь представление о причине этого явления?Спасибо!

Скриншот файлов проекта

...