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


Я создал проект Objective-C++, который запускает некоторый код C++ (OpenCV). Он работает нормально, и все работает хорошо. Но затем я решил добавить эти подпрограммы в качестве подпроекта к моему основному проекту, я получаю ошибки всякий раз, когда я пытаюсь использовать классы подпроектов.

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

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

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

Ура,

1 4

1 ответ:

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

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