Проблема при добавлении подпроекта 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++
на дополнительные флаги компоновщика вашего приложения.