Проблема при добавлении подпроекта Obj-C++ в проект Xcode Obj-C

Я создал проект Objective-C++, который выполняет некоторый код C++ (OpenCV). Работает нормально и все работает хорошо. Но затем я решил добавить эти подпрограммы в качестве подпроекта в мой ГЛАВНЫЙ ПРОЕКТ, и я получаю ошибки всякий раз, когда пытаюсь использовать классы подпроекта.

Дело в том, что мой SUBPROJECT использует исходные файлы .mm, тогда как мой MAIN PROJECT использует только исходные файлы .m: введите описание изображения здесь

Каждый раз, когда я пытаюсь выделить класс DyOpenCV (DyOpenCv *opencv = [DyOpenCv alloc]), Я получаю много ошибок: Ошибки компиляции

Это совет для объединения Obj-C с проектами Obj-Cpp? Это специальный интерфейс для использования, когда я пытаюсь запустить .mm файлы из .m? Даже если файлы .mm из подпроекта? Нужно ли добавлять все библиотеки моего подпроекта в мой проект (я это уже сделал)?

Ура,

1 ответ

Решение

Вам необходимо создать ссылку на стандартную библиотеку C++. Обычно это происходит автоматически, если фаза исходных файлов компиляции содержит какие-либо файлы C++, но если все компоненты C++ содержатся в статической библиотеке, то вам нужно явно попросить связать ее с конечным исполняемым файлом.

Проверьте настройки сборки подпроекта. Найдите вариант сборки стандартной библиотеки C++. Если он установлен на libC++ (стандартная библиотека llvm), тогда добавьте -lc++ на дополнительные флаги компоновщика вашего приложения. Если он установлен на libstdC++ (библиотека gnu), то добавьте -lstdc++ на дополнительные флаги компоновщика вашего приложения.

Другие вопросы по тегам