Problem building WebRTC viewer component

105 views
Skip to first unread message

choraz...@gmail.com

unread,
Aug 25, 2024, 4:12:28 PM8/25/24
to opensou...@lists.secondlife.com

Hi,

 

I’ve been spending time lately working on Kokua’s Atlasosaurus merge, however I’m hitting a WebRTC issue with the build. I’m also seeing the same thing if I put my merging to one side and try building the Atlasosaurus branch.

 

This is building the viewer on Windows with VS2022 rather than on Github.

 

I’m hitting this…

 

  Building Custom Rule D:/kokua/kokua-ca-sandbox/indra/llwebrtc/CMakeLists.txt

  llwebrtc.cpp

     Creating library D:/kokua/kokua-ca-sandbox/build-vc170-64/llwebrtc/Release/llwebrtc.lib and object D:/kokua/kokua-ca-sandbox/build-vc170-64/llwebrtc/Release/llwebrtc.exp

webrtc.lib(suppression_gain.obj) : error LNK2019: unresolved external symbol __std_min_element_f referenced in function "float const * __cdecl std::__std_min_element<float const >(float const * const,float const * const)" (??$__std_min_element@$$CBM@std@@YAPEBMQEBM0@Z) [D:\kokua\kokua-ca-sandbox\build-vc170-64\llwebrtc\llwebrtc.vcxproj]

webrtc.lib(subtractor_output.obj) : error LNK2001: unresolved external symbol __std_min_element_f [D:\kokua\kokua-ca-sandbox\build-vc170-64\llwebrtc\llwebrtc.vcxproj]

webrtc.lib(reverb_decay_estimator.obj) : error LNK2001: unresolved external symbol __std_min_element_f [D:\kokua\kokua-ca-sandbox\build-vc170-64\llwebrtc\llwebrtc.vcxproj]

webrtc.lib(render_signal_analyzer.obj) : error LNK2019: unresolved external symbol __std_max_element_f referenced in function "float const * __cdecl std::__std_max_element<float const >(float const * const,float const * const)" (??$__std_max_element@$$CBM@std@@YAPEBMQEBM0@Z) [D:\kokua\kokua-ca-sandbox\build-vc170-64\llwebrtc\llwebrtc.vcxproj]

webrtc.lib(subtractor_output.obj) : error LNK2001: unresolved external symbol __std_max_element_f [D:\kokua\kokua-ca-sandbox\build-vc170-64\llwebrtc\llwebrtc.vcxproj]

webrtc.lib(render_signal_analyzer.obj) : error LNK2019: unresolved external symbol __std_minmax_element_f referenced in function "struct std::pair<float const *,float const *> __cdecl std::__std_minmax_element<float const >(float const * const,float const * const)" (??$__std_minmax_element@$$CBM@std@@YA?AU?$pair@PEBMPEBM@0@QEBM0@Z) [D:\kokua\kokua-ca-sandbox\build-vc170-64\llwebrtc\llwebrtc.vcxproj]

webrtc.lib(echo_audibility.obj) : error LNK2001: unresolved external symbol __std_minmax_element_f [D:\kokua\kokua-ca-sandbox\build-vc170-64\llwebrtc\llwebrtc.vcxproj]

webrtc.lib(generic_decoder.obj) : error LNK2019: unresolved external symbol __std_max_8i referenced in function "<auto> __cdecl std::__std_max<__int64 const >(__int64 const * const,__int64 const * const)" (??$__std_max@$$CB_J@std@@YA?A?<auto>@@QEB_J0@Z) [D:\kokua\kokua-ca-sandbox\build-vc170-64\llwebrtc\llwebrtc.vcxproj]

webrtc.lib(encoder_stream_factory.obj) : error LNK2019: unresolved external symbol __std_max_8u referenced in function "<auto> __cdecl std::__std_max<unsigned __int64 const >(unsigned __int64 const * const,unsigned __int64 const * const)" (??$__std_max@$$CB_K@std@@YA?A?<auto>@@QEB_K0@Z) [D:\kokua\kokua-ca-sandbox\build-vc170-64\llwebrtc\llwebrtc.vcxproj]

webrtc.lib(scalability_structure_full_svc.obj) : error LNK2019: unresolved external symbol __std_bitset_to_string_1 referenced in function "public: <auto> __cdecl `public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl std::bitset<32>::to_string<char,struct std::char_traits<char>,class std::allocator<char> >(char,char)const '::`1'::<lambda_1>::operator()(char *,unsigned __int64)const " (??R<lambda_1>@?0???$to_string@DU?$char_traits@D@std@@V?$allocator@D@2@@?$bitset@$0CA@@std@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@DD@Z@QEBA?A?<auto>@@PEAD_K@Z) [D:\kokua\kokua-ca-sandbox\build-vc170-64\llwebrtc\llwebrtc.vcxproj]

 

…which looks like it’s expecting to link against <algorithm> but isn’t succeeding.

 

Has anyone else seen/solved this one? What’s the solution?

 

Henri Beauchamp

unread,
Aug 26, 2024, 4:11:01 AM8/26/24
to choraz...@gmail.com, opensou...@lists.secondlife.com
On Sun, 25 Aug 2024 21:12:23 +0100, choraz...@gmail.com wrote:

> I've been spending time lately working on Kokua's Atlasosaurus merge,
> however I'm hitting a WebRTC issue with the build. I'm also seeing the same
> thing if I put my merging to one side and try building the Atlasosaurus
> branch.
>
> This is building the viewer on Windows with VS2022 rather than on Github.

Maybe a C++20 (llwebrtc) vs C++17 (viewer) library "flavour" issue ?...
I am not familiar with VS/Windows, but when you mix standards on Linux,
you risk seeing newer libstdc++ library functions getting referenced in
your library and not matching the libstdc++ version you are linking
against when compiling your final program...

In any case, it would be about time that llwebtrc would be moved out of
LL's viewer sources tree (akin to what is done for Dullahan), like I did
from the very start for my viewer since anyway older gcc versions (needed
to keep the final viewer builds compatible with 4-5 years old Linux
systems) do not fully implement the C++20 standard required by llwebrtc
(I therefore build the latter using clang which can do it, but I still
link it to the same libstdc++ version to avoid symbols issues).

If you are interested in stand-alone llwebrtc pre-built packages (for
Linux, Windows and macOS), you could reuse the ones I made for my
viewer. See http://sldev.free.fr/libraries/ for binaries, and
http://sldev.free.fr/libraries/sources/ for sources. The current builds
have been done against LL's latest m114.5735.08.72 webrtc-sdk build.
To get it linked your viewer sources, just change cmake/WebRTC.cmake
appropriately (see my viewer sources) and remove the reference to
the llwebrtc sub-directory in indra/CMakeLists.txt.

Regards,

Henri.

Roxanne Skelly

unread,
Aug 27, 2024, 3:23:45 PM8/27/24
to opensource-dev, choraz...@gmail.com
Hi,
Hmm, so the stock atlasaurus build isn't even building for you.  That's concerning.  There's clearly something different in your setup.  I'm on VS Community 2022 (17.11.2, the latest) as are a lot of us, and MSVC v143 (latest.)  Which of those do you have installed?

-Roxie Linden

choraz...@gmail.com

unread,
Aug 27, 2024, 5:13:05 PM8/27/24
to Roxanne Skelly, opensource-dev

Hi Roxie,

 

I’ll answer this one with the list cc’ed but suggest we go direct after that to respect people’s mailboxes.

 

I’m currently on VS Community 2022 (17.4.4) and MSVC 143. I’ll update and see if anything changes.

 

-Chorazin

Monty Brandenberg

unread,
Aug 28, 2024, 11:30:22 PM8/28/24
to opensou...@lists.secondlife.com
On 8/27/2024 5:12 PM, choraz...@gmail.com wrote:

> I’ll answer this one with the list cc’ed but suggest we go direct after
> that to respect people’s mailboxes.

Don't worry about swamping mailboxes on this list. :) Happy to
see some activity...

m

choraz...@gmail.com

unread,
Aug 29, 2024, 3:24:05 AM8/29/24
to Monty Brandenberg, opensou...@lists.secondlife.com
Thanks... as a postscript to the original question, here's the solution.

The core problem was needing to be on a current release of Visual Studio Community 2022. The current 17.11.2 works fine. 17.5.x doesn't; I'm not sure where the actual pivot point is.

Secondly, llvoicewebrtc will give a non-fatal warning about the contents of <format> only being accessible under C++20. Roxie confirmed that this include can be safely commented out since the include isn't required.
--
Archives of earlier incarnations of this list are at https://list-archives.secondlife.com
---
You received this message because you are subscribed to the Google Groups "opensource-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to opensource-de...@lists.secondlife.com.
To view this discussion on the web visit https://groups.google.com/a/lists.secondlife.com/d/msgid/opensource-dev/abd7aa76-84b2-4489-9ef2-9c8688f01b0d%40lindenlab.com.

Reply all
Reply to author
Forward
0 new messages