Проблемы при добавлении параметра Obj-C++ и субпроектами в в Xcode и Obj-C проекта.
Я создал проект Objective-C++, который запускает некоторый код C++ (OpenCV). Он работает нормально, и все работает хорошо. Но затем я решил добавить эти подпрограммы в качестве подпроекта к моему основному проекту, я получаю ошибки всякий раз, когда я пытаюсь использовать классы подпроектов.
Дело в том, что мой подпроект использует .мм исходных файлов, в то время как мой главный проект использует только .m исходные файлы:
Каждый раз, когда я пытаюсь выделить класс DyOpenCV (DyOpenCv *opencv = [DyOpenCv alloc]
), я получаю много ошибок:
Это совет по слиянию Obj-C с проектами Obj-Cpp? Это специальный интерфейс для использования, как только я пытаюсь запустить .mm файлы из .m единиц? Даже если файлы . mm взяты из подпроекта? Нужно ли добавлять все библиотеки моего подпроекта в мой проект (я уже это сделал)?
Ура,
1 ответ:
Необходимо установить связь со стандартной библиотекой c++. Обычно это происходит автоматически, если ваша фаза компиляции исходных текстов содержит какие-либо файлы c++, но если весь c++ содержится в статической библиотеке, то вам нужно явно попросить, чтобы он был связан с конечным исполняемым файлом.
Проверьте настройки сборки подпроекта. Найдите опцию сборки стандартной библиотеки C++. Если он установлен в libc++ (стандартная библиотека llvm), добавьте
-lc++
к дополнительным флагам компоновщика вашего приложения. Если это так установите значение libstdc++ (библиотека gnu), затем добавьте-lstdc++
к дополнительным флагам компоновщика вашего приложения.