Проблема "ld: duplicate symbol" в кросс-компиляции XCode
Я пытаюсь кросс-компилировать проект для iOS (который написан в Windows) и основан на openCV. И затем я пытаюсь использовать эти кросс-скомпилированные библиотеки openCV для конкретного приложения (называемого testApp).
Я впервые смог успешно кросс-компилировать openCV для iOS. Затем я использовал эти библиотеки для создания другой библиотеки под названием testLib.a, которая использовалась приложением testApp (которое также использовало некоторые функции openCV).
TestLib.a скомпилирован успешно, но для testApp мне пришлось добавить зависимость как в testLib.a, так и в библиотеки openCV (файлы.a). Когда я пытаюсь скомпилировать testApp, я получаю следующую ошибку -
ld: дублированный символ cv::split(cv::Mat const&, cv::Mat*) в /Users/suri/Projects/testLib/lib/Debug/libopencv_core.a(convert.o) и /Users/suri/Projects/testApp/libs/testLib.a(convert.o) для архитектуры i386
Я вижу, что эта ошибка, вероятно, появляется, потому что библиотеки openCV добавляются open testLib, а также testApp. У меня вопрос, должен ли я попытаться реорганизовать проект или есть какой-то другой способ решить эту проблему?
Я попытался найти, где функция "split" может фактически использоваться в testLib, но, похоже, она не вызывается. Кроме того, я проверил и каждый.h в testLib, а также testApp, и все они имеют макрос "ifndef".