Как собрать плагин с помощью XCode, включая библиотеку OpenCV (или другую стороннюю библиотеку), чтобы Unity мог ее использовать? - PullRequest
0 голосов
/ 17 января 2019

Я знаю, что Unity не может динамически вызывать стороннюю библиотеку (нестандартную библиотеку) в плагине, когда он работает. Поэтому нам нужно включить статическую библиотеку в плагин перед сборкой. Но я не знаю точно, как настроить мой проект Xcode, который включает в себя некоторую статическую библиотеку и процесс установки.

Я пытаюсь найти некоторые ресурсы или учебные пособия, которые говорят об этой теме, но я просто нахожу учебные пособия , которые используют Visual Studio, а не Xcode.

Кто-нибудь знаком с этой темой?

Ответы [ 2 ]

0 голосов
/ 27 марта 2019

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

Позвольте мне взять пример библиотеки OpenCV.

Сначала нажмите project, и вы увидите кнопку Build Setting. Нажмите на нее и измените Header Search Paths и Library Search Paths. В моем случае я ввожу /usr/local/Cellar/opencv/3.4.3/include/** и /usr/local/Cellar/opencv/3.4.3/lib/**, затем нажимаю targets и делаю то же самое.

Кроме того, нам нужно добавить библиотеку OpenCV в проект, потому что Unity не может динамически вызывать библиотеку 3-й части в плагине при его запуске. Итак, вам нужно упаковать их, и тогда Xcode автоматически создаст фреймворк.

Итак, нажмите кнопку Build Phases. Теперь вы можете увидеть Link Binary With Libraries на этой странице, а затем нажать кнопку + и нажать add other.... Затем перейдите к пути к библиотеке OpenCV

/ usr / local / Cellar / opencv / 3.4.3 / lib (для моего случая)

Выбрать все файлы без "pythonx.x".

Теперь вы должны увидеть список Frameworks в IDE XCode, а затем вы можете провести некоторый тест и проверить, успешно ли добавлена ​​сторонняя библиотека.

enter image description here

C ++:

int ProcessImage()
{
    cv::Mat test(10, 10, CV_8UC1);  //use opencv library
    return test.rows;   // should return 10
}

c ++ Заголовок

#include <opencv2/imgproc.hpp>
#include <stdio.h>

extern "C"
{
    int ProcessImage();
}

с #

[DllImport("test")]   /*the name of Plugin is Test*/
private static extern int ProcessImage();

Debug.Log(ProcessImage().ToString());

Результат

enter image description here

0 голосов
/ 05 февраля 2019

Вы можете получить необходимую помощь по ссылкам, приведенным ниже -

https://github.com/darshanpv/OpenCV4Unity

https://forum.unity.com/threads/building-opencv-plugin-for-mac-osx.623662/#post-4179892

Пожалуйста, попробуйте их и дайте мне знать, если у вас возникнут какие-либо проблемы. Просто сфокусируйтесь на части Mac OSX.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...