Сборка MicroSIP 3.20.7: Отображение ошибки «Неразрешенные внешние символы»
Я пытаюсь собрать MicroSIP версии 3.20.7 для 64-разрядной операционной системы Windows 10 .
Я уже создал PjProject (как упоминалось в документации) и получил все файлы .lib для того же, и теперь я пытаюсь использовать эти файлы .lib для создания MicroSIP, как указано в документации на их веб-сайте.
Но я попадаю на ошибку неразрешенных внешних символов, то есть LNK2019 / LNK2001 / LNK1120.
(Изображение для справки прилагается)
В заключение я делаю следующие шаги.
- Загрузите исходный код для PjProject и извлеките его с помощью 7Zip.
- Добавлен файл config_site.h в pjlib \ include \ pj .
- Используя Visual Studio 2022, откройте PjProject и выберите pjsua в качестве исходного проекта.
- Настройка конфигурации проекта как -> Debug-Static для x64. и сборка.
- После успешной сборки я получил все файлы .lib для PjProject и успешно развернул проект pjsua, показывающий меню cli для PjSIP.
- Теперь я загрузил последний исходный код MicroSIP 3.20.7 с официального сайта и извлек исходный код с помощью 7Zip.
- Установка конфигурации проекта как «Отладка для x64» и включение всех файлов заголовков и файлов библиотек из комплекта Windows, а также других медиа-библиотек в каталоги включения и каталоги библиотек {Opus, SDL2, FFMPEG,x264, VPX, PjProject}
- Я начал собирать MicroSIP 3.20.7 и успешно получил файл MicroSIP.lib.
Но в последнем случае, когда сборка должна выдавать исполняемый файл для MicroSIP, есть список ошибок с указанием неразрешенных внешних символов {LNK2019 / LNK2001 / LNK1120}
Ниже приведена ссылка на изображение со всеми ошибками в окнах консоли.
В сообщении об ошибке указано следующее.
неразрешенный внешний символ pjmedia_get_vid_subsys, указанный в функции "public: void __cdecl CmainDlg::OnTimer(unsigned __int64)" (?OnTimer@CmainDlg@@QEAAX_K@Z)
неразрешенный внешний символ 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.