提问人:codename-SAMY 提问时间:1/15/2022 更新时间:1/27/2022 访问量:419
使用 PjSip 编译 Opus 库时出错 {PJSUA}
Error while Compiling Opus Library with PjSip {PJSUA}
问:
我正在尝试编译和构建 PjProject {PJSUA},其中包含音频和视频支持。但每次都陷入错误,这是Unresolved_External_Symbols。
我正在使用 Visual Studio 2022 和工具链集最新版本 v143 为 Windows-32 位构建这个项目。
我想初始化各种编解码器 {OPUS、OPENH264、FFMPEG、OPENSSL、SDL 等}。我只想问一下OPUS图书馆。
步骤如下:
获取最新版本的 PjProject 的源代码并在 Visual Studio 2022 中加载项目。
编译构建 LibOpus 后,请提及 Opus Include 目录和 Opus 库目录。
将 PJSUA 设置为源项目,并将配置设置为 Debug-Static-Win32,然后开始生成项目。
注意
- 其他附加依赖项,如 SDL 头文件和 lib 文件已经包含在内。
- config_site.h 已用于定义编解码器使用 {#define PJMEDIA_HAS_OPUS_CODEC 1}
我在错误日志中收到的错误如下:
Error LNK2019 unresolved external symbol _opus_encoder_get_size referenced in function _pjmedia_codec_opus_set_default_param pjsua C:\Users\coral\Desktop\pjproject-master\pjsip-apps\build\libpjproject-i386-Win32-vc14-Debug-Static.lib(opus.obj) 1
Error LNK2019 unresolved external symbol _opus_encoder_init referenced in function _pjmedia_codec_opus_set_default_param pjsua C:\Users\coral\Desktop\pjproject-master\pjsip-apps\build\libpjproject-i386-Win32-vc14-Debug-Static.lib(opus.obj) 1
Error LNK2019 unresolved external symbol _opus_encode referenced in function _pjmedia_codec_opus_set_default_param pjsua C:\Users\coral\Desktop\pjproject-master\pjsip-apps\build\libpjproject-i386-Win32-vc14-Debug-Static.lib(opus.obj) 1
Error LNK2019 unresolved external symbol _opus_encoder_ctl referenced in function _pjmedia_codec_opus_set_default_param pjsua C:\Users\coral\Desktop\pjproject-master\pjsip-apps\build\libpjproject-i386-Win32-vc14-Debug-Static.lib(opus.obj) 1
Error LNK2019 unresolved external symbol _opus_decoder_get_size referenced in function _pjmedia_codec_opus_set_default_param pjsua C:\Users\coral\Desktop\pjproject-master\pjsip-apps\build\libpjproject-i386-Win32-vc14-Debug-Static.lib(opus.obj) 1
Error LNK2019 unresolved external symbol _opus_decoder_init referenced in function _pjmedia_codec_opus_set_default_param pjsua C:\Users\coral\Desktop\pjproject-master\pjsip-apps\build\libpjproject-i386-Win32-vc14-Debug-Static.lib(opus.obj) 1
Error LNK2019 unresolved external symbol _opus_decode referenced in function _pjmedia_codec_opus_set_default_param pjsua C:\Users\coral\Desktop\pjproject-master\pjsip-apps\build\libpjproject-i386-Win32-vc14-Debug-Static.lib(opus.obj) 1
Error LNK2019 unresolved external symbol _opus_packet_get_nb_samples referenced in function _pjmedia_codec_opus_set_default_param pjsua C:\Users\coral\Desktop\pjproject-master\pjsip-apps\build\libpjproject-i386-Win32-vc14-Debug-Static.lib(opus.obj) 1
Error LNK2019 unresolved external symbol _opus_repacketizer_get_size referenced in function _pjmedia_codec_opus_set_default_param pjsua C:\Users\coral\Desktop\pjproject-master\pjsip-apps\build\libpjproject-i386-Win32-vc14-Debug-Static.lib(opus.obj) 1
Error LNK2019 unresolved external symbol _opus_repacketizer_init referenced in function _pjmedia_codec_opus_set_default_param pjsua C:\Users\coral\Desktop\pjproject-master\pjsip-apps\build\libpjproject-i386-Win32-vc14-Debug-Static.lib(opus.obj) 1
Error LNK2019 unresolved external symbol _opus_repacketizer_cat referenced in function _pjmedia_codec_opus_set_default_param pjsua C:\Users\coral\Desktop\pjproject-master\pjsip-apps\build\libpjproject-i386-Win32-vc14-Debug-Static.lib(opus.obj) 1
Error LNK2019 unresolved external symbol _opus_repacketizer_out_range referenced in function _pjmedia_codec_opus_set_default_param pjsua C:\Users\coral\Desktop\pjproject-master\pjsip-apps\build\libpjproject-i386-Win32-vc14-Debug-Static.lib(opus.obj) 1
Error LNK2019 unresolved external symbol _opus_repacketizer_get_nb_frames referenced in function _pjmedia_codec_opus_set_default_param pjsua C:\Users\coral\Desktop\pjproject-master\pjsip-apps\build\libpjproject-i386-Win32-vc14-Debug-Static.lib(opus.obj) 1
Error LNK2019 unresolved external symbol _opus_repacketizer_out referenced in function _pjmedia_codec_opus_set_default_param pjsua C:\Users\coral\Desktop\pjproject-master\pjsip-apps\build\libpjproject-i386-Win32-vc14-Debug-Static.lib(opus.obj) 1
Error LNK1120 14 unresolved externals pjsua C:\Users\coral\Desktop\pjproject-master\pjsip-apps\bin\pjsua-i386-Win32-vc14-Debug-Static.exe 1
我能否获得一种更简单的方法,以便我可以通过 soving 它来摆脱所有这些错误,并编译和构建包含 OPUS CODEC 的 PJSUA。
答:
0赞
codename-SAMY
1/27/2022
#1
经过长时间的尝试,我得到了如下解决方案:
- 在 config_site.h 中,我们需要提及并激活我们的编解码器以进行编译 #define PJMEDIA_HAS_OPUS_CODEC
#define PJMEDIA_HAS_OPUS_CODEC 必须处于活动状态,则必须从程序中明确删除 #define PJMEDIA_HAS_OPUS_CODEC 1 的其余函数行,以便于编译,这将省略在构建过程中调用的不同函数。
我仍然会提到,在Windows上构建时,请使用Microsoft Visual Studio最新版本以及最新的工具集来编译和构建单个链接器的不同程序。
评论