Как собрать PJSUA2 (swig) с помощью Visual Studio 2015 - PullRequest
0 голосов
/ 26 февраля 2019

Я пытаюсь скомпилировать PJSUA2 для Python.Мне удалось скомпилировать исходный код с помощью Visual Studio 2015 Community Edition.

Мой вопрос: как мне теперь установить модуль Python?

В руководстве предлагается использовать make и make install.Я пытался установить также minwg, но он не работает, так как проект был скомпилирован с VS.

Я также пытался скомпилировать с помощью minwg, но я не смог добиться успеха из-за неопределенных требований.Также официальное руководство PJSUA рекомендует использовать VS для Windows.

Следующие настройки были применены для сборки из источника:

  • Расположение Swig было добавлено к пути
  • Добавлена ​​системная переменная JAVA_home
  • В путь добавлено расположение Java
  • Создан пустой файл pjlib / include / pj / config_site.h
  • Открытый источник в VSСообщество 2015 (все предложенные VS-пакет и модуль установлены)
  • Установить для следующего проекта не компиляцию:
    • pjsua_cli_uwp_comp
    • pjsua_cli_wp8
    • pjsua_cli_wp8_comp
  • Установите swig_java_pjsua2 для сборки.
  • Добавьте следующие папки в каталоги swig_java_pjsua2 VC ++ include
    • c: \ Program Files \ Java \ jdk-11.0.2 \ include
    • c: \ Program Files \ Java \ jdk-11.0.2 \ include \ win32
  • Решение для сборки

1 Ответ

0 голосов
/ 19 мая 2019

Я мог бы сделать обходной путь для компиляции pjsua2 для Python 3.7.Если у вас есть лучшее решение или просто предложение для этого обходного пути, сообщите мне

Предварительные условия:

  • Элемент списка
  • Скачать и извлечь swig (swigwin 4.0.0)
  • Скачать и установить JDK
  • Скачать и установить Python (Python 3.7.3 x64) и установить при выборочной установке:
    • поставить галочку «Добавить Python в переменные среды»
    • флажок «Прекомпилировать стандартную библиотеку»
    • флажок «Загрузить символы отладки»
    • флажок «Загрузить двоичные файлы отладки (требуется VS 2015 или более поздняя версия)» *
    • установить пользовательский путьесли вы хотите
    • добавить местоположение swigwin в системный путь
    • добавить расположение Python в системный путь
    • добавить системную переменную JAVA_HOME
    • добавить% JAVA_HOME% \ bin всистемный путь
    • Установка Visual Studio 2015 Community Edition

Шаги:

  • Скачать и извлечь pjsip 2.8
  • Создайте пустой config_site.h в папке pjlib / inlclude / pj /
  • Откройте pjproject-vs14.sln в VS
  • Появится неподдерживаемое окно с предупреждением, нажмите OK
  • . В окнах «Install Missing Features» нажмите install
  • Установщик VS будетзапущен, и VS должен быть закрыт для завершения установки.
  • Я также добавил «Windows 10 SDK (10.0.10586)» для установки.
  • Я также включил режим разработчика на моемWindows 10, но это может быть необязательным
  • Снова откройте проект в VS
  • Установите для проекта Release и x64 в верхнем раскрывающемся списке
  • Щелкните правой кнопкой мыши решение и перейдите кСвойства конфигурации> Конфигурация
  • Удалите из проекта все проекты, связанные с uwp и wp8, такие как pjsua_cli_uwp_comp, pjsua_cli_wp8_comp
  • , нажмите OK и создайте решение
  • У меня было 34 успеха и 0 не удалосьрешение после сборки.
  • Добавьте следующие строки в pjsua2.i в папке pjsip-apps / src / swig

    %inline %{
    pj_ssize_t new_pj_ssize_t(int s) {
       return (pj_ssize_t) s;
    }
    %}
    

    эта дополнительная встроенная функция swig обеспечивает обходной путь длясоздать рекордер выпуск

  • открыть командную строку (PowerShell не работает для этого)
  • перейти к pjsip-apps / src / swig / python
  • Выполнить следующую команду:

    swig -I../../../../pjlib/include -I../../../../pjlib-util/include -I../../../../pjmedia/include -I../../../../pjsip/include -I../../../../pjnath/include -py3 -c++  -python -threads ../pjsua2.i
    
  • Добавить новый «пустой проект» (Visual C ++) в решение с именем swig_python_pjsua2

  • Добавьте libpjproject и pjsua2_lib в качестве ссылки на этот новый проект
  • Щелкните правой кнопкой мыши по заголовочным файлам> Добавить> Существующий элемент ...
  • Добавьте pjsip-apps \ src \ swig \ pjsua2_wrapp.h
  • Добавить «новый фильтр» в проект с именем «Сгенерированный код»
  • Щелкните правой кнопкой мыши «Сгенерированный код» и добавьте новый существующий элемент.
  • Добавить pjsip-apps\ src \ swig \ pjsua2_wrapp.cxx
  • Щелкните правой кнопкой мыши проект и компоновщик> Ввод
  • Добавьте «Ws2_32.Lib» в «Дополнительные зависимости»
  • Перейдите в «VC ++»Каталоги "
  • Добавить следующую папку, чтобы включить путь (я использовал полный путь!):
    • c: \ python37 \ include
    • pjnath \ include
    • pjsip \ include
    • pjmedia \ include
    • pjlib-util \ include
    • pjlib \ include
  • Добавить следующую папкув каталоги библиотек:
    • C: \ Python36 \ libs
  • Установить в общем:
    • Имя цели: _ $ (ProjectName)
    • Целевое расширение: .pyd
    • Тип конфигурации: Динамическая библиотека (.dll)
  • Перейдите в свойства решения и выберите swig_python_pjsua2 для сборки
  • Щелкните правой кнопкой мыши swig_python_pjsua2 и выполните сборку
  • Сборка должна быть успешно завершена
  • Вам потребуется файл, чтобы использовать библиотеку pjsua2 в python.
  • pjsua.py, расположенную под pjsip-apps/ src / swig / python
  • x64 / Release / _swig_python_pjsua2.pyd (переименуйте его в _pjsua2.pyd)
  • Для проверки скопируйте их в файл в папку, запустите python из той же папки итип:
    • импорт pjsua2
...