Сборка MicroSIP 3.20.7: Отображение ошибки «Неразрешенные внешние символы»

Я пытаюсь собрать MicroSIP версии 3.20.7 для 64-разрядной операционной системы Windows 10 .

Я уже создал PjProject (как упоминалось в документации) и получил все файлы .lib для того же, и теперь я пытаюсь использовать эти файлы .lib для создания MicroSIP, как указано в документации на их веб-сайте.

Но я попадаю на ошибку неразрешенных внешних символов, то есть LNK2019 / LNK2001 / LNK1120.

(Изображение для справки прилагается)

В заключение я делаю следующие шаги.

  1. Загрузите исходный код для PjProject и извлеките его с помощью 7Zip.
  2. Добавлен файл config_site.h в pjlib \ include \ pj .
  3. Используя Visual Studio 2022, откройте PjProject и выберите pjsua в качестве исходного проекта.
  4. Настройка конфигурации проекта как -> Debug-Static для x64. и сборка.
  5. После успешной сборки я получил все файлы .lib для PjProject и успешно развернул проект pjsua, показывающий меню cli для PjSIP.
  6. Теперь я загрузил последний исходный код MicroSIP 3.20.7 с официального сайта и извлек исходный код с помощью 7Zip.
  7. Установка конфигурации проекта как «Отладка для x64» и включение всех файлов заголовков и файлов библиотек из комплекта Windows, а также других медиа-библиотек в каталоги включения и каталоги библиотек {Opus, SDL2, FFMPEG,x264, VPX, PjProject}
  8. Я начал собирать MicroSIP 3.20.7 и успешно получил файл MicroSIP.lib.

Но в последнем случае, когда сборка должна выдавать исполняемый файл для MicroSIP, есть список ошибок с указанием неразрешенных внешних символов {LNK2019 / LNK2001 / LNK1120}

Ниже приведена ссылка на изображение со всеми ошибками в окнах консоли.

В сообщении об ошибке указано следующее.

  1. неразрешенный внешний символ pjmedia_get_vid_subsys, указанный в функции "public: void __cdecl CmainDlg::OnTimer(unsigned __int64)" (?OnTimer@CmainDlg@@QEAAX_K@Z)

  2. неразрешенный внешний символ pjmedia_vid_dev_refrence, указанный в функции "public: void __cdecl CmainDlg::OnTimer(unsigned __int64)" (?OnTimer@CmainDlg@@QEAAX_K@Z).

и т . д. есть еще 17 ошибок (пожалуйста, обратите внимание на изображение выше) .

Вот что я пытался решить эти ошибки.

  • Проверено правильность связывания включаемых файлов с подключаемым каталогом.
  • Проверено правильность привязки файлов библиотеки к каталогу библиотеки.
  • Проверено имя библиотеки и исполняемых файлов как в PjSIP, так и в MicroSIP.

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

Я использую Visual Studio 2022. Я использую последнюю версию Windows Kit для Windows 10 - 10.0.20348.0.

Что мне делать дальше, чтобы получить исполняемый файл MicroSIP после сборки проекта из исходников?

2 ответа

В общем, я понял, что не так в проекте.

Если мы не хотим использовать параметр видео, мы можем завершить параметр Global_Constant_Video в файле константы.h , что, несомненно, создаст приложение, но без поддержки видео в нем. Если включение видео является опцией, которую необходимо выбрать, вам необходимо снова очистить и перестроить приложение меню CliPJSUA , добавив в него поддержку видео вместе с предпочтительным видеокодеком, и использовать полученные библиотеки для создания приложения MicroSIP с самого начала. .

Надеюсь, вам будет легко, просто примите участие в кодах.

Ваше здоровье

Это может отсутствовать

      #define PJMEDIA_HAS_VIDEO 1

в config_site.h.

Другие вопросы по тегам