# error building mediasoupclient

**URL:** <https://mediasoup.discourse.group/t/error-building-mediasoupclient/5039>\
**Category:** mediasoup libraries\
**Created:** [March 11, 2023, 2:14pm UTC](https://mediasoup.discourse.group/t/error-building-mediasoupclient/5039 "2023-03-11T14:14:45Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![Bigcat](https://avatars.discourse-cdn.com/v4/letter/b/9fc348/32.png) [@Bigcat](https://mediasoup.discourse.group/u/Bigcat)\
**Post date:** [March 11, 2023, 2:14pm UTC](https://mediasoup.discourse.group/t/error-building-mediasoupclient/5039/1 "2023-03-11T14:14:45Z")

</div>

I am trying build a c++ client, but I am getting below error. any idea what could have went wrong?

4%] Building CXX object libsdptransform/CMakeFiles/sdptransform.dir/src/grammar.cpp.o  
[8%] Building CXX object libsdptransform/CMakeFiles/sdptransform.dir/src/parser.cpp.o  
[12%] Building CXX object libsdptransform/CMakeFiles/sdptransform.dir/src/writer.cpp.o  
[16%] Linking CXX static library libsdptransform.a  
[16%] Built target sdptransform  
[20%] Building CXX object CMakeFiles/mediasoupclient.dir/src/Consumer.cpp.o  
In file included from /webrtc-checkout/src/api/units/time\_delta.h:22,  
from /webrtc/mediasoup/webrtc-checkout/src/api/units/timestamp.h:21,  
from /webrtc/mediasoup/webrtc-checkout/src/api/video/recordable\_encoded\_frame.h:16,  
from /webrtc/mediasoup/webrtc-checkout/src/api/media\_stream\_interface.h:27,  
from /webrtc/mediasoup/libmediasoupclient/include/Consumer.hpp:5,  
from /webrtc/mediasoup/libmediasoupclient/src/Consumer.cpp:3:  
webrtc/mediasoup/webrtc-checkout/src/rtc\_base/units/unit\_base.h:270:44: error: ‘is\_floating\_point\_v’ is not a member of ‘std’; did you mean ‘is\_floating\_point’?  
270 | typename std::enable\_if\_t\<std::is\_floating\_point\_v\>\* = nullptr\>  
| ^ ~~~~~~~~~~~~~~~~~~  
| is\_floating\_point  
/webrtc/mediasoup/webrtc-checkout/src/rtc\_base/units/unit\_base.h:270:44: error: ‘is\_floating\_point\_v’ is not a member of ‘std’; did you mean ‘is\_floating\_point’?  
270 | typename std::enable\_if\_t\<std::is\_floating\_point\_v\>\* = nullptr\>  
| ^ ~~~~~~~~~~~~~~~~~~  
| is\_floating\_point  
/webrtc/mediasoup/webrtc-checkout/src/rtc\_base/units/unit\_base.h:270:64: error: template argument 1 is invalid  
270 | typename std::enable\_if\_t\<std::is\_floating\_point\_v\>\* = nullptr\>  
| ^  
/webrtc/mediasoup/webrtc-checkout/src/rtc\_base/units/unit\_base.h:270:65: error: expected identifier before ‘\>’ token  
270 | typename std::enable\_if\_t\<std::is\_floating\_point\_v\>\* = nullptr\>  
| ^~  
/webrtc/mediasoup/webrtc-checkout/src/rtc\_base/units/unit\_base.h:270:69: error: expected unqualified-id before ‘=’ token  
270 | typename std::enable\_if\_t\<std::is\_floating\_point\_v\>\* = nullptr\>  
| ^  
/webrtc/mediasoup/webrtc-checkout/src/rtc\_base/units/unit\_base.h:275:44: error: ‘is\_integral\_v’ is not a member of ‘std’; did you mean ‘is\_integral’?  
275 | typename std::enable\_if\_t\<std::is\_integral\_v\>\* = nullptr\>  
| ^ ~~~~~~~~~~~~  
| is\_integral  
/webrtc/mediasoup/webrtc-checkout/src/rtc\_base/units/unit\_base.h:275:44: error: ‘is\_integral\_v’ is not a member of ‘std’; did you mean ‘is\_integral’?  
275 | typename std::enable\_if\_t\<std::is\_integral\_v\>\* = nullptr\>  
| ^ ~~~~~~~~~~~~  
| is\_integral  
/webrtc/mediasoup/webrtc-checkout/src/rtc\_base/units/unit\_base.h:275:58: error: template argument 1 is invalid  
275 | typename std::enable\_if\_t\<std::is\_integral\_v\>\* = nullptr\>  
| ^  
/webrtc/mediasoup/webrtc-checkout/src/rtc\_base/units/unit\_base.h:275:59: error: expected identifier before ‘\>’ token  
275 | typename std::enable\_if\_t\<std::is\_integral\_v\>\* = nullptr\>  
| ^~  
/webrtc/mediasoup/webrtc-checkout/src/rtc\_base/units/unit\_base.h:275:63: error: expected unqualified-id before ‘=’ token  
275 | typename std::enable\_if\_t\<std::is\_integral\_v\>\* = nullptr\>  
| ^  
In file included from /webrtc/mediasoup/webrtc-checkout/src/api/rtp\_packet\_infos.h:18,  
from /webrtc/mediasoup/webrtc-checkout/src/api/video/encoded\_image.h:20,  
from /webrtc/mediasoup/webrtc-checkout/src/api/video/recordable\_encoded\_frame.h:18,  
from /webrtc/mediasoup/webrtc-checkout/src/api/media\_stream\_interface.h:27,  
from /webrtc/mediasoup/libmediasoupclient/include/Consumer.hpp:5,  
from /webrtc/mediasoup/libmediasoupclient/src/Consumer.cpp:3:  
/webrtc/mediasoup/webrtc-checkout/src/api/make\_ref\_counted.h:32:38: error: ‘is\_same\_v’ is not a member of ‘std’; did you mean ‘is\_same’?  
32 | static constexpr bool value = std::is\_same\_v\<decltype(Test(0)), int\>;  
| ^ ~~~~~~~~  
| is\_same  
/webrtc/mediasoup/webrtc-checkout/src/api/make\_ref\_counted.h:32:48: error: expected primary-expression before ‘decltype’  
32 | static constexpr bool value = std::is\_same\_v\<decltype(Test(0)), int\>;  
| ^ ~~~~~~~~~~~~~~~~~~~  
/webrtc/mediasoup/webrtc-checkout/src/api/make\_ref\_counted.h:32:47: error: expected ‘;’ at end of member declaration  
32 | static constexpr bool value = std::is\_same\_v\<decltype(Test(0)), int\>;  
| ^  
| ;  
/webrtc/mediasoup/webrtc-checkout/src/api/make\_ref\_counted.h:32:68: error: expected unqualified-id before ‘,’ token  
32 | static constexpr bool value = std::is\_same\_v\<decltype(Test(0)), int\>;  
| ^  
/webrtc/mediasoup/webrtc-checkout/src/api/make\_ref\_counted.h:82:34: error: ‘is\_convertible\_v’ is not a member of ‘std’; did you mean ‘is\_convertible’?  
82 | typename std::enable\_if\<std::is\_convertible\_v\<T\*, RefCountInterface\*\> &&  
| ^ ~~~~~~~~~~~~~~~  
| is\_convertible  
/webrtc/mediasoup/webrtc-checkout/src/api/make\_ref\_counted.h:82:34: error: ‘is\_convertible\_v’ is not a member of ‘std’; did you mean ‘is\_convertible’?  
82 | typename std::enable\_if\<std::is\_convertible\_v\<T\*, RefCountInterface\*\> &&  
| ^ ~~~~~~~~~~~~~~~  
| is\_convertible  
/webrtc/mediasoup/webrtc-checkout/src/api/make\_ref\_counted.h:82:73: error: template argument 1 is invalid  
82 | typename std::enable\_if\<std::is\_convertible\_v\<T\*, RefCountInterface\*\> &&  
| ^  
/webrtc/mediasoup/webrtc-checkout/src/api/make\_ref\_counted.h:82:75: error: expected identifier before ‘&&’ token  
82 | typename std::enable\_if\<std::is\_convertible\_v\<T\*, RefCountInterface\*\> &&  
| ^~  
/webrtc/mediasoup/webrtc-checkout/src/api/make\_ref\_counted.h:83:33: error: expected ‘\>’  
83 | std::is\_abstract\_v,  
| ^~~  
/webrtc/mediasoup/webrtc-checkout/src/api/make\_ref\_counted.h:84:33: error: ‘type’ in namespace ‘::’ does not name a type; did you mean ‘wctype’?  
84 | T\>::type\* = nullptr\>  
| ^~~~  
| wctype  
/webrtc/mediasoup/webrtc-checkout/src/api/make\_ref\_counted.h:95:15: error: ‘is\_convertible\_v’ is not a member of ‘std’; did you mean ‘is\_convertible’?  
95 | !std::is\_convertible\_v\<T\*, RefCountInterface\*\> &&  
| ^ ~~~~~~~~~~~~~~~  
| is\_convertible  
/webrtc/mediasoup/webrtc-checkout/src/api/make\_ref\_counted.h:95:31: warning: logical not is only applied to the left hand side of comparison [-Wlogical-not-parentheses]  
95 | !std::is\_convertible\_v\<T\*, RefCountInterface\*\> &&  
| ^  
/webrtc/mediasoup/webrtc-checkout/src/api/make\_ref\_counted.h:95:54: error: template argument 1 is invalid  
95 | !std::is\_convertible\_v\<T\*, RefCountInterface\*\> &&  
| ^  
/webrtc/mediasoup/webrtc-checkout/src/api/make\_ref\_counted.h:95:56: error: expected identifier before ‘&&’ token  
95 | !std::is\_convertible\_v\<T\*, RefCountInterface\*\> &&  
| ^~  
/webrtc/mediasoup/webrtc-checkout/src/api/make\_ref\_counted.h:96:13: error: expected ‘\>’  
96 | webrtc\_make\_ref\_counted\_internal::HasAddRefAndRelease::value,  
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
/webrtc/mediasoup/webrtc-checkout/src/api/make\_ref\_counted.h:97:13: error: ‘type’ in namespace ‘::’ does not name a type; did you mean ‘wctype’?  
97 | T\>::type\* = nullptr\>  
| ^~~~  
| wctype  
/webrtc/mediasoup/webrtc-checkout/src/api/make\_ref\_counted.h:108:15: error: ‘is\_convertible\_v’ is not a member of ‘std’; did you mean ‘is\_convertible’?  
108 | !std::is\_convertible\_v\<T\*, RefCountInterface\*\> &&  
| ^ ~~~~~~~~~~~~~~~  
| is\_convertible  
/webrtc/mediasoup/webrtc-checkout/src/api/make\_ref\_counted.h:108:31: warning: logical not is only applied to the left hand side of comparison [-Wlogical-not-parentheses]  
108 | !std::is\_convertible\_v\<T\*, RefCountInterface\*\> &&  
| ^  
/webrtc/mediasoup/webrtc-checkout/src/api/make\_ref\_counted.h:108:54: error: template argument 1 is invalid  
108 | !std::is\_convertible\_v\<T\*, RefCountInterface\*\> &&  
| ^  
/webrtc/mediasoup/webrtc-checkout/src/api/make\_ref\_counted.h:108:56: error: expected identifier before ‘&&’ token  
108 | !std::is\_convertible\_v\<T\*, RefCountInterface\*\> &&  
| ^~  
/webrtc/mediasoup/webrtc-checkout/src/api/make\_ref\_counted.h:109:13: error: expected ‘\>’ before ‘!’ token  
109 | !webrtc\_make\_ref\_counted\_internal::HasAddRefAndRelease::value,  
| ^  
/webrtc/mediasoup/webrtc-checkout/src/api/make\_ref\_counted.h:111:13: error: ‘type’ in namespace ‘::’ does not name a type; did you mean ‘wctype’?  
111 | T\>::type\* = nullptr\>  
| ^~~~  
| wctype  
In file included from /webrtc/mediasoup/webrtc-checkout/src/api/video/encoded\_image.h:20,  
from /webrtc/mediasoup/webrtc-checkout/src/api/video/recordable\_encoded\_frame.h:18,  
from /webrtc/mediasoup/webrtc-checkout/src/api/media\_stream\_interface.h:27,  
from /webrtc/mediasoup/libmediasoupclient/include/Consumer.hpp:5,  
from /webrtc/mediasoup/libmediasoupclient/src/Consumer.cpp:3:  
/webrtc/mediasoup/webrtc-checkout/src/api/rtp\_packet\_infos.h: In static member function ‘static rtc::scoped\_refptrwebrtc::RtpPacketInfos::Data webrtc::RtpPacketInfos::Data::Create(const vector\_type&)’:  
/webrtc/mediasoup/webrtc-checkout/src/api/rtp\_packet\_infos.h:91:19: error: ‘make\_ref\_counted’ is not a member of ‘rtc’  
91 | return rtc::make\_ref\_counted(entries);  
| ^ ~~~~~~~~~~~~~~~  
/webrtc/mediasoup/webrtc-checkout/src/api/rtp\_packet\_infos.h:91:40: error: expected primary-expression before ‘\>’ token  
91 | return rtc::make\_ref\_counted(entries);  
| ^  
/webrtc/mediasoup/webrtc-checkout/src/api/rtp\_packet\_infos.h: In static member function ‘static rtc::scoped\_refptrwebrtc::RtpPacketInfos::Data webrtc::RtpPacketInfos::Data::Create(webrtc::RtpPacketInfos::vector\_type&&)’:  
/webrtc/mediasoup/webrtc-checkout/src/api/rtp\_packet\_infos.h:100:19: error: ‘make\_ref\_counted’ is not a member of ‘rtc’  
100 | return rtc::make\_ref\_counted(std::move(entries));  
| ^ ~~~~~~~~~~~~~~~  
/webrtc/mediasoup/webrtc-checkout/src/api/rtp\_packet\_infos.h:100:40: error: expected primary-expression before ‘\>’ token  
100 | return rtc::make\_ref\_counted(std::move(entries));  
| ^  
In file included from /webrtc/mediasoup/webrtc-checkout/src/api/video\_codecs/video\_codec.h:22,  
from /webrtc/mediasoup/webrtc-checkout/src/api/video\_codecs/video\_encoder.h:27,  
from /webrtc/mediasoup/webrtc-checkout/src/modules/video\_coding/include/video\_codec\_interface.h:20,  
from /webrtc/mediasoup/webrtc-checkout/src/modules/video\_coding/encoded\_frame.h:18,  
from /webrtc/mediasoup/webrtc-checkout/src/api/video/encoded\_frame.h:19,  
from /webrtc/mediasoup/webrtc-checkout/src/api/frame\_transformer\_interface.h:18,  
from /webrtc/mediasoup/webrtc-checkout/src/api/rtp\_receiver\_interface.h:22,  
from /webrtc/mediasoup/libmediasoupclient/include/Consumer.hpp:6,  
from /webrtc/mediasoup/libmediasoupclient/src/Consumer.cpp:3:  
/webrtc/mediasoup/webrtc-checkout/src/api/video\_codecs/scalability\_mode.h: At global scope:  
/webrtc/mediasoup/webrtc-checkout/src/api/video\_codecs/scalability\_mode.h:57:1: warning: inline variables are only available with ‘-std=c++17’ or ‘-std=gnu++17’  
57 | inline constexpr ScalabilityMode kAllScalabilityModes = {  
| ^ ~~~~~  
/webrtc/mediasoup/webrtc-checkout/src/api/video\_codecs/scalability\_mode.h:89:1: warning: inline variables are only available with ‘-std=c++17’ or ‘-std=gnu++17’  
89 | inline constexpr size\_t kScalabilityModeCount =  
| ^ ~~~~~  
make[2]: \*\*\* [CMakeFiles/mediasoupclient.dir/build.make:76: CMakeFiles/mediasoupclient.dir/src/Consumer.cpp.o] Error 1  
make[1]: \*\*\* [CMakeFiles/Makefile2:135: CMakeFiles/mediasoupclient.dir/all] Error 2  
make: \*\*\* [Makefile:136: all] Error 2

---

<div class="post-metadata">

**Author:** ![copiltembel](https://avatars.discourse-cdn.com/v4/letter/c/e9a140/32.png) [@copiltembel](https://mediasoup.discourse.group/u/copiltembel)\
**Post date:** [March 11, 2023, 4:23pm UTC](https://mediasoup.discourse.group/t/error-building-mediasoupclient/5039/2 "2023-03-11T16:23:14Z")

</div>

Can you please post all the previous commands that you ran until you got this error?

---

<div class="post-metadata">

**Author:** ![Bigcat](https://avatars.discourse-cdn.com/v4/letter/b/9fc348/32.png) [@Bigcat](https://mediasoup.discourse.group/u/Bigcat)\
**Post date:** [March 11, 2023, 4:47pm UTC](https://mediasoup.discourse.group/t/error-building-mediasoupclient/5039/3 "2023-03-11T16:47:18Z")

</div>

I think the previous error was due to some version mismatch. I update cmake to use version 17 so I can fix the error with version mismatched, but I got different error below

I update the camke file to to point to libwenrtc dir  
set(LIBWEBRTC\_INCLUDE\_PATH “/webrtc/mediasoup/webrtc-checkout/src”)  
set(LIBWEBRTC\_BINARY\_PATH “/webrtc/mediasoup/webrtc-checkout/src/out/webrtc/obj”)

cmake . then make

[4%] Building CXX object libsdptransform/CMakeFiles/sdptransform.dir/src/grammar.cpp.o  
[8%] Building CXX object libsdptransform/CMakeFiles/sdptransform.dir/src/parser.cpp.o  
[12%] Building CXX object libsdptransform/CMakeFiles/sdptransform.dir/src/writer.cpp.o  
[16%] Linking CXX static library libsdptransform.a  
[16%] Built target sdptransform  
[20%] Building CXX object CMakeFiles/mediasoupclient.dir/src/Consumer.cpp.o  
[24%] Building CXX object CMakeFiles/mediasoupclient.dir/src/DataConsumer.cpp.o  
[28%] Building CXX object CMakeFiles/mediasoupclient.dir/src/DataProducer.cpp.o  
[32%] Building CXX object CMakeFiles/mediasoupclient.dir/src/Device.cpp.o  
[36%] Building CXX object CMakeFiles/mediasoupclient.dir/src/Handler.cpp.o  
/webrtc/mediasoup/libmediasoupclient/src/Handler.cpp: In member function ‘mediasoupclient::SendHandler::SendResult mediasoupclient::SendHandler::Send(webrtc::MediaStreamTrackInterface\*, std::vectorwebrtc::RtpEncodingParameters_, const json_, const json\*)’:  
/webrtc/mediasoup/libmediasoupclient/src/Handler.cpp:212:88: error: no matching function for call to ‘mediasoupclient::PeerConnection::AddTransceiver(webrtc::MediaStreamTrackInterface\*&, webrtc::RtpTransceiverInit&)’  
212 | webrtc::RtpTransceiverInterface\* transceiver = this-\>pc-\>AddTransceiver(track, transceiverInit);  
| ~~^~  
In file included from /webrtc/mediasoup/libmediasoupclient/include/Handler.hpp:4,  
from /webrtc/mediasoup/libmediasoupclient/src/Handler.cpp:3:  
/webrtc/mediasoup/libmediasoupclient/include/PeerConnection.hpp:124:69: note: candidate: ‘rtc::scoped\_refptrwebrtc::RtpTransceiverInterface mediasoupclient::PeerConnection::AddTransceiver(cricket::MediaType)’  
124 | rtc::scoped\_refptrwebrtc::RtpTransceiverInterface AddTransceiver(cricket::MediaType mediaType);  
| ^ ~~~~~~~~~~~~~  
/webrtc/mediasoup/libmediasoupclient/include/PeerConnection.hpp:124:69: note: candidate expects 1 argument, 2 provided  
/webrtc/mediasoup/libmediasoupclient/include/PeerConnection.hpp:125:69: note: candidate: ‘rtc::scoped\_refptrwebrtc::RtpTransceiverInterface mediasoupclient::PeerConnection::AddTransceiver(rtc::scoped\_refptrwebrtc::MediaStreamTrackInterface, webrtc::RtpTransceiverInit)’  
125 | rtc::scoped\_refptrwebrtc::RtpTransceiverInterface AddTransceiver(  
| ^ ~~~~~~~~~~~~~  
/webrtc/mediasoup/libmediasoupclient/include/PeerConnection.hpp:126:73: note: no known conversion for argument 1 from ‘webrtc::MediaStreamTrackInterface\*’ to ‘rtc::scoped\_refptrwebrtc::MediaStreamTrackInterface’  
126 | rtc::scoped\_refptrwebrtc::MediaStreamTrackInterface track,  
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~  
/webrtc/mediasoup/libmediasoupclient/src/Handler.cpp:359:63: error: cannot convert ‘rtc::scoped\_refptrwebrtc::RtpSenderInterface’ to ‘webrtc::RtpSenderInterface\*’ in assignment  
359 | sendResult.rtpSender = transceiver-\>sender();  
| ~~~~~~~~~~~~~~~~~~~ ^~  
| |  
| rtc::scoped\_refptrwebrtc::RtpSenderInterface  
/webrtc/mediasoup/libmediasoupclient/src/Handler.cpp: In member function ‘void mediasoupclient::SendHandler::StopSending(const string&)’:  
/webrtc/mediasoup/libmediasoupclient/src/Handler.cpp:464:58: error: cannot convert ‘rtc::scoped\_refptrwebrtc::RtpSenderInterface’ to ‘webrtc::RtpSenderInterface\*’  
464 | this-\>pc-\>RemoveTrack(transceiver-\>sender());  
| ~~~~~~~~~~~~~~~~~~~ ^~  
| |  
| rtc::scoped\_refptrwebrtc::RtpSenderInterface  
In file included from /webrtc/mediasoup/libmediasoupclient/include/Handler.hpp:4,  
from /webrtc/mediasoup/libmediasoupclient/src/Handler.cpp:3:  
/webrtc/mediasoup/libmediasoupclient/include/PeerConnection.hpp:129:62: note: initializing argument 1 of ‘bool mediasoupclient::PeerConnection::RemoveTrack(webrtc::RtpSenderInterface\*)’  
129 | bool RemoveTrack(webrtc::RtpSenderInterface\* sender);  
| ~~~~~~~~~~~~~~~~ ^~  
/webrtc/mediasoup/libmediasoupclient/src/Handler.cpp: In member function ‘mediasoupclient::RecvHandler::RecvResult mediasoupclient::RecvHandler::Receive(const string&, const string&, const json\*)’:  
/webrtc/mediasoup/libmediasoupclient/src/Handler.cpp:700:52: error: cannot convert ‘rtc::scoped\_refptrwebrtc::RtpTransceiverInterface’ to ‘std::unordered\_map\<std::\_\_cxx11::basic\_string, webrtc::RtpTransceiverInterface\*\>::mapped\_type’ {aka ‘webrtc::RtpTransceiverInterface\*’} in assignment  
700 | this-\>mapMidTransceiver[localId] = transceiver;  
| ^~~  
| |  
| rtc::scoped\_refptrwebrtc::RtpTransceiverInterface  
/webrtc/mediasoup/libmediasoupclient/src/Handler.cpp:705:63: error: cannot convert ‘rtc::scoped\_refptrwebrtc::RtpReceiverInterface’ to ‘webrtc::RtpReceiverInterface\*’ in assignment  
705 | recvResult.rtpReceiver = transceiver-\>receiver();  
| ~~~~~~~~~~~~~~~~~~~~~ ^~  
| |  
| rtc::scoped\_refptrwebrtc::RtpReceiverInterface  
/webrtc/mediasoup/libmediasoupclient/src/Handler.cpp:706:72: error: cannot convert ‘rtc::scoped\_refptrwebrtc::MediaStreamTrackInterface’ to ‘webrtc::MediaStreamTrackInterface\*’ in assignment  
706 | recvResult.track = transceiver-\>receiver()-\>track();  
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^~  
| |  
| rtc::scoped\_refptrwebrtc::MediaStreamTrackInterface  
In file included from /usr/include/c++/11/bits/stl\_algobase.h:71,  
from /usr/include/c++/11/algorithm:61,  
from /webrtc/mediasoup/libmediasoupclient/deps/libsdptransform/include/json.hpp:37,  
from /webrtc/mediasoup/libmediasoupclient/include/PeerConnection.hpp:4,  
from /webrtc/mediasoup/libmediasoupclient/include/Handler.hpp:4,  
from /webrtc/mediasoup/libmediasoupclient/src/Handler.cpp:3:  
/usr/include/c++/11/bits/predefined\_ops.h: In instantiation of ‘bool \_\_gnu\_cxx::\_\_ops::\_Iter\_pred\<\_Predicate\>::operator()(\_Iterator) [with \_Iterator = \_\_gnu\_cxx::\_\_normal\_iterator\<rtc::scoped\_refptrwebrtc::RtpTransceiverInterface_, std::vector\<rtc::scoped\_refptrwebrtc::RtpTransceiverInterface \> \>; \_Predicate = mediasoupclient::RecvHandler::Receive(const string&, const string&, const json_)::\<lambda(webrtc::RtpTransceiverInterface\*)\>]’:  
/usr/include/c++/11/bits/stl\_algobase.h:2069:14: required from ‘\_RandomAccessIterator std::\_\_find\_if(\_RandomAccessIterator, \_RandomAccessIterator, \_Predicate, std::random\_access\_iterator\_tag) [with \_RandomAccessIterator = \_\_gnu\_cxx::\_\_normal\_iterator\<rtc::scoped\_refptrwebrtc::RtpTransceiverInterface_, std::vector\<rtc::scoped\_refptrwebrtc::RtpTransceiverInterface \> \>; \_Predicate = \_\_gnu\_cxx::\_\_ops::\_Iter\_pred\<mediasoupclient::RecvHandler::Receive(const string&, const string&, const json_)::\<lambda(webrtc::RtpTransceiverInterface\*)\> \>]’  
/usr/include/c++/11/bits/stl\_algobase.h:2114:23: required from ‘\_Iterator std::\_\_find\_if(\_Iterator, \_Iterator, \_Predicate) [with \_Iterator = \_\_gnu\_cxx::\_\_normal\_iterator\<rtc::scoped\_refptrwebrtc::RtpTransceiverInterface_, std::vector\<rtc::scoped\_refptrwebrtc::RtpTransceiverInterface \> \>; \_Predicate = \_\_gnu\_cxx::\_\_ops::\_Iter\_pred\<mediasoupclient::RecvHandler::Receive(const string&, const string&, const json_)::\<lambda(webrtc::RtpTransceiverInterface\*)\> \>]’  
/usr/include/c++/11/bits/stl\_algo.h:3910:28: required from ‘\_IIter std::find\_if(\_IIter, \_IIter, \_Predicate) [with \_IIter = \_\_gnu\_cxx::\_\_normal\_iterator\<rtc::scoped\_refptrwebrtc::RtpTransceiverInterface_, std::vector\<rtc::scoped\_refptrwebrtc::RtpTransceiverInterface \> \>; \_Predicate = mediasoupclient::RecvHandler::Receive(const string&, const string&, const json_)::\<lambda(webrtc::RtpTransceiverInterface\*)\>]’  
/webrtc/mediasoup/libmediasoupclient/src/Handler.cpp:689:36: required from here  
/usr/include/c++/11/bits/predefined\_ops.h:318:30: error: no match for call to ‘(mediasoupclient::RecvHandler::Receive(const string&, const string&, const json\*)::\<lambda(webrtc::RtpTransceiverInterface\*)\>) (rtc::scoped\_refptrwebrtc::RtpTransceiverInterface&)’  
318 | { return bool(\_M\_pred(_\_\_it)); }  
| ~~~^~~  
/webrtc/mediasoup/libmediasoupclient/src/Handler.cpp:690:61: note: candidate: ‘mediasoupclient::RecvHandler::Receive(const string&, const string&, const json_)::\<lambda(webrtc::RtpTransceiverInterface\*)\>’  
690 | transceivers.begin(), transceivers.end(), [&localId](webrtc::RtpTransceiverInterface\* t) {  
| ^  
/webrtc/mediasoup/libmediasoupclient/src/Handler.cpp:690:61: note: no known conversion for argument 1 from ‘rtc::scoped\_refptrwebrtc::RtpTransceiverInterface’ to ‘webrtc::RtpTransceiverInterface\*’  
make[2]: \*\*\* [CMakeFiles/mediasoupclient.dir/build.make:132: CMakeFiles/mediasoupclient.dir/src/Handler.cpp.o] Error 1  
make[1]: \*\*\* [CMakeFiles/Makefile2:135: CMakeFiles/mediasoupclient.dir/all] Error 2  
make: \*\*\* [Makefile:136: all] Error 2

---

<div class="post-metadata">

**Author:** ![copiltembel](https://avatars.discourse-cdn.com/v4/letter/c/e9a140/32.png) [@copiltembel](https://mediasoup.discourse.group/u/copiltembel)\
**Post date:** [March 11, 2023, 5:45pm UTC](https://mediasoup.discourse.group/t/error-building-mediasoupclient/5039/4 "2023-03-11T17:45:36Z")

</div>

No one can help you if you don’t want be be helped. I will repeat this again in case you missed it:

**Can you please post all the previous commands that you ran until you got this error?**

---

<div class="post-metadata">

**Author:** ![Bigcat](https://avatars.discourse-cdn.com/v4/letter/b/9fc348/32.png) [@Bigcat](https://mediasoup.discourse.group/u/Bigcat)\
**Post date:** [March 12, 2023, 3:32am UTC](https://mediasoup.discourse.group/t/error-building-mediasoupclient/5039/5 "2023-03-12T03:32:57Z")

</div>

@copiltembel I just sent you what I did for the mediasoup client, I am not sure what commands you are referring to. Please be clear, I am not hiding anything 🙂

I update the camke file to to point to libwenrtc dir

set(LIBWEBRTC\_INCLUDE\_PATH “/webrtc/mediasoup/webrtc-checkout/src”)  
set(LIBWEBRTC\_BINARY\_PATH “/webrtc/mediasoup/webrtc-checkout/src/out/webrtc/obj”)

cmake . then make

if you are asking about building libwebrtc, I ran below commands to get the recent code of libwebrtc based on [webrtc.org](http://webrtc.org)  
after I installed depot-tools  
git checkout -b m105 refs/remotes/branch-heads/5195  
gclient sync

gn gen out/webrtc --args=‘is\_debug=false is\_component\_build=false rtc\_include\_tests=false rtc\_use\_h264=true use\_rtti=true use\_glib=false treat\_warnings\_as\_errors=false use\_custom\_libcxx=false’

ninja -C out/webrtc

I was able to build libwebrtc without any issues, then I pointed the mediasoup client to it

---

<div class="post-metadata">

**Author:** ![snnz](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/snnz/32/693_2.png) [@snnz](https://mediasoup.discourse.group/u/snnz)\
**Post date:** [March 12, 2023, 7:33am UTC](https://mediasoup.discourse.group/t/error-building-mediasoupclient/5039/6 "2023-03-12T07:33:29Z")

</div>

Did you notice in the documentation on `libmediasoupclient` installation that currently supported branch of `libwebrtc` is `m94`?

---

<div class="post-metadata">

**Author:** ![Bigcat](https://avatars.discourse-cdn.com/v4/letter/b/9fc348/32.png) [@Bigcat](https://mediasoup.discourse.group/u/Bigcat)\
**Post date:** [March 12, 2023, 7:47am UTC](https://mediasoup.discourse.group/t/error-building-mediasoupclient/5039/7 "2023-03-12T07:47:43Z")

</div>

Yes. I keep having issues with getting audio due to libwebrtc being old after checking with webrtc group

> [@c++ client Fatal error in: - -/. ./media/engine/adm\_helpers.cc, line 39](https://mediasoup.discourse.group/t/c-client-fatal-error-in-media-engine-adm-helpers-cc-line-39/5016):
>
> Team, I am trying to use libmediasoupclient to broadcast video from headless device. I am getting below error when I use mediasoup-broadcaster-demo user@box1-wxx:~/project/mediasoup/mediasoup-broadcaster-demo$sudo SERVER\_URL-https: [//v3demo.mediasoup.org](https://v3demo.mediasoup.org): 4443 ROOM\_ID-e3qehudg ./build/broadcaster [DEBUG] mediasoupclient: : Initialize() | mediasoupclient v3.4.0 [INFO] welcome to mediasoup broadcaster app! [INFO] verifying that room ‘e3gehudg’ exists. [INFO] found roome3gehudg TINFO] Broad…

I am still having issues in both. M94 is audio issues and it is in libwebrtc and had to update it to fix it

Now I am having issue with mediasoup client.

Do you know how to fix either issues?

---

<div class="post-metadata">

**Author:** ![snnz](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/snnz/32/693_2.png) [@snnz](https://mediasoup.discourse.group/u/snnz)\
**Post date:** [March 12, 2023, 8:13am UTC](https://mediasoup.discourse.group/t/error-building-mediasoupclient/5039/8 "2023-03-12T08:13:03Z")

</div>

You’ll have to modify `libmediasoupclient` sources to make it compile with newer `libwebrtc`. There were some breaking changes in call parameters, etc around `m100`. I’ve seen some efforts of this kind while browsing through different projects on github. Can’t say offhand where.

---

<div class="post-metadata">

**Author:** ![copiltembel](https://avatars.discourse-cdn.com/v4/letter/c/e9a140/32.png) [@copiltembel](https://mediasoup.discourse.group/u/copiltembel)\
**Post date:** [March 12, 2023, 9:15am UTC](https://mediasoup.discourse.group/t/error-building-mediasoupclient/5039/9 "2023-03-12T09:15:15Z")

</div>

> [@Bigcat](#):
>
> git checkout -b m105 refs/remotes/branch-heads/5195

This is the problem. As stated by Sergey, m105 is NOT supported yet by libmediasoupclient.

---

<div class="post-metadata">

**Author:** ![copiltembel](https://avatars.discourse-cdn.com/v4/letter/c/e9a140/32.png) [@copiltembel](https://mediasoup.discourse.group/u/copiltembel)\
**Post date:** [March 12, 2023, 9:57am UTC](https://mediasoup.discourse.group/t/error-building-mediasoupclient/5039/10 "2023-03-12T09:57:18Z")

</div>

> [@Bigcat](#):
>
> if you are asking about building libwebrtc

This and also the ones for libmediasoupclient. You usually get a quick answer on this forum if people understand all the steps you did that led you to an error.

---

<div class="post-metadata">

**Author:** ![Bigcat](https://avatars.discourse-cdn.com/v4/letter/b/9fc348/32.png) [@Bigcat](https://mediasoup.discourse.group/u/Bigcat)\
**Post date:** [March 12, 2023, 4:07pm UTC](https://mediasoup.discourse.group/t/error-building-mediasoupclient/5039/11 "2023-03-12T16:07:57Z")

</div>

Yes. And at the same time libwebrtc m94 is not working for me unable to read audio.

---

<div class="post-metadata">

**Author:** ![Bigcat](https://avatars.discourse-cdn.com/v4/letter/b/9fc348/32.png) [@Bigcat](https://mediasoup.discourse.group/u/Bigcat)\
**Post date:** [March 12, 2023, 4:13pm UTC](https://mediasoup.discourse.group/t/error-building-mediasoupclient/5039/12 "2023-03-12T16:13:43Z")

</div>

@copiltembel @snnz

I was able to build everything using m94. But the issue the audio does not work and crashes comes from libwebrtc.

It seems the best choice to build mediasoup client using recent code of m105 so i can test on it. Unfortunately mediasoup client is not maintained and it does not seem there is plan to update it. Correct?

What do you guys recommend my next action?

---

<div class="post-metadata">

**Author:** ![Bigcat](https://avatars.discourse-cdn.com/v4/letter/b/9fc348/32.png) [@Bigcat](https://mediasoup.discourse.group/u/Bigcat)\
**Post date:** [March 12, 2023, 4:17pm UTC](https://mediasoup.discourse.group/t/error-building-mediasoupclient/5039/13 "2023-03-12T16:17:37Z")

</div>

Do you think trying m99 could work? If around m100. Probably my Audio issue could be solved my m99. I will try it anyways, but what do you think?

---

<div class="post-metadata">

**Author:** ![snnz](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/snnz/32/693_2.png) [@snnz](https://mediasoup.discourse.group/u/snnz)\
**Post date:** [March 12, 2023, 5:17pm UTC](https://mediasoup.discourse.group/t/error-building-mediasoupclient/5039/14 "2023-03-12T17:17:00Z")

</div>

No, I think it will not compile with m99. Maybe with m98.
