Не удается скомпилировать приложение из Titanium Appcelerator с модулем iOS OpenCV

#xcode #opencv #titanium #appcelerator

#xcode #opencv #titanium #appcelerator

Вопрос:

У меня проблема, которая длится уже больше месяца, и я не могу найти для нее никакого решения. Я создал модуль Appcelerator Titanium, который использует фреймворк OpenCV. Я перепробовал буквально все, что нашел в Интернете, чтобы заставить это работать, но безуспешно. Модуль компилируется, но он выходит из строя при создании приложения, которое его использует. Чтобы глубже разобраться в проблеме, я компилирую приложение с помощью CLI using appc run -p ios -l trace , чтобы увидеть его целиком. Это то, что я получаю:

[TRACE] ld: framework not found opencv2 [TRACE] clang: error: linker command failed with exit code 1 (use -v to see invocation)

Это произойдет, если я объявлю фреймворк в module.xconfig файле следующим образом:

OTHER_LDFLAGS=$(inherited) -framework opencv2

Если я не объявлю это в файле, я получу:

[TRACE] symbols not found for architecture x86_64 [TRACE] clang: error: linker command failed with exit code 1 (use -v to see invocation)

Ну, opencv2.framework файл находится внутри /ios папки в модуле.

Это то, что я пробовал до сих пор, чтобы поместить OpenCV Framework в проект:

Официальный пример OpenCV для XCode

Компилируем его с нуля, а затем добавляем в проект

brew install opencv and then adding it to the project

Я настроил Framework Search Paths вот так:

$(inherited) $(PROJECT_DIR) $(SRCROOT)

Header Search Paths вот так:

$(inherited) "$(TITANIUM_SDK)/iphone/include" /usr/local/Cellar/opencv/4.4.0/include (этот последний, при установке с помощью brew CLI command .

Other Linker Flags , Настроен следующим образом:

Эту конфигурацию я получил из приведенного ниже руководства

Эту конфигурацию я получил из этого руководства: OpenCV на XCode

И, наконец, я попытался добавить .dylib файлы из источника OpenCV Framework в проект, щелкнув правой кнопкой мыши название проекта и добавив файлы.

Итак, я перепробовал все, что мог найти, чтобы решить эту проблему, но я не могу заставить ее работать. Извините за длинный вопрос, но у меня совершенно нет идей о том, как заставить это работать.

Пожалуйста, помогите мне!

Ответ №1:

Прежде всего, opencv2.framework оно автоматически копируется в папку XCode /ios (если вы выбрали Копировать файлы при необходимости). НО Appcelerator нуждается в сторонних фреймворках для размещения в /ios/platform папке. Итак, я переместил его туда.

Во-вторых, я добавил -lz в Other Linker Flags Build Settings .

Это решило проблему. Я должен поблагодарить команду и разработчиков из TiSlack (сообщество платформы Appcelerator), которые помогли мне в этом. Майкл и Ганс, спасибо!

Ответ №2:

Вот видео, которое помогло мне установить OpenCV4 на мой Macbook Pro Mojave 10.14.6. Я попытался установить OpenCV с помощью другого видео, и это привело меня к ошибке компоновщика, похожей на вашу.

По сути, проблема заключалась в пути, который я указал для своих папок / lib и / include.

https://www.youtube.com/watch?edufilter=NULLamp;v=HxNZEa7Slyk

Комментарии:

1. Спасибо! Я уже решил свою проблему, но я сохраню это видео на будущее.