Skip to content

libmediasoupclient 3.5.0: compilation error: declaration of ‘virtual const webrtc::Network* webrtc::PortInterface::Network() const’ changes meaning of ‘Network’ [-Wchanges-meaning] #189

@raphael10-collab

Description

@raphael10-collab

Following the indications found here : https://mediasoup.org/documentation/v3/libmediasoupclient/installation/

I tried to build libmediasoupclient but got during compilation phase this error message:

/home/raphy/webrtc-checkout/src/p2p/base/port_interface.h:58:26: error: declaration of ‘virtual const webrtc::Network* webrtc::PortInterface::Network() const’ changes meaning of ‘Network’ [-Wchanges-meaning]
   58 |   virtual const Network* Network() const = 0;

These are all the steps I took, and their output :

raphy@raohy:~$ mkdir webrtc-checkout
raphy@raohy:~$ cd webrtc-checkout

raphy@raohy:~/webrtc-checkout$ fetch --nohooks webrtc
Syncing projects: 100% (76/76), done

raphy@raohy:~/webrtc-checkout$ gclient sync
Syncing projects: 100% (76/76), done.


raphy@raohy:~/webrtc-checkout$ cd src
raphy@raohy:~/webrtc-checkout/src$ git checkout -b m140 refs/remotes/branch-heads/7339
Previous HEAD position was bd5852280d Roll chromium_revision f6f1046192..6612b939a3 (1546919:1547055)
branch 'm140' set up to track 'origin/refs/branch-heads/7339'.
Switched to a new branch 'm140'

raphy@raohy:~/webrtc-checkout/src$ gclient sync
Syncing projects: 100% (63/63), done.


raphy@raohy:~/webrtc-checkout/src$ gn gen out/m140 --args='is_debug=false is_component_build=false is_clang=false rtc_include_tests=false rtc_use_h264=true use_rtti=true use_custom_libcxx=false treat_warnings_as_errors=false use_ozone=true'
Generating compile_commands took 50ms
Done. Made 2230 targets from 358 files in 1460ms

raphy@raohy:~/webrtc-checkout/src$ autoninja -C out/m140
offline mode
ninja: Entering directory `out/m140'
 1.63s Regenerating ninja files
build finished
local:7789 remote:0 cache:0 fallback:0 retry:0 skip:2105
fs: ops: 252408(err:55896) / r:43943(err:0) 2.00GiB / w:1838(err:0) 10.19MiB
 resource/capa used(err)  wait-avg |   s m |  serv-avg |   s m |
   localexec/8   6396(0)  5m05.85s |▂▂▂▂▃█▃|     2.22s |▂▄▇█▂▂ |
 pool=action/8    229(0)    36.86s |▄ ▂█▅█ |     4.75s |  ▄█▃▂ |
29m58.98s Build Succeeded: 7789 steps - 4.33/s



raphy@raohy:~/webrtc-checkout/src$ ls -lah ./out/m140/obj/ | grep libwebrtc
-rw-rw-r--  1 raphy raphy  48M nov 19 13:24 libwebrtc.a


raphy@raohy:~$ git clone https://github.com/versatica/libmediasoupclient.git

https://github.com/versatica/libmediasoupclient/tags

raphy@raohy:~/libmediasoupclient$ git checkout 3.5.0
Note: switching to '3.5.0'.


raphy@raohy:~/libmediasoupclient$ PATH_TO_LIBWEBRTC_SOURCES=/home/raphy/webrtc-checkout/src
raphy@raohy:~/libmediasoupclient$ PATH_TO_LIBWEBRTC_BINARY=/home/raphy/webrtc-checkout/src/out/m140/obj/


raphy@raohy:~/libmediasoupclient$
raphy@raohy:~/libmediasoupclient$ nano build/_deps/libsdptransform-src/CMakeLists.txt :
cmake_minimum_required(VERSION 3.10)


raphy@raohy:~/libmediasoupclient$ cmake . -Bbuild   -DLIBWEBRTC_INCLUDE_PATH:PATH=${PATH_TO_LIBWEBRTC_SOURCES} -DLIBWEBRTC_BINARY_PATH:PATH=${PATH_TO_LIBWEBRTC_BINARY} -DCMAKE_CXX_FLAGS="-fvisibility=hidden"

-- The CXX compiler identification is GNU 13.3.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done

=========== libmediasoupclient Build Configuration ===========

-- MEDIASOUPCLIENT_BUILD_TESTS : OFF
-- MEDIASOUPCLIENT_LOG_TRACE   : OFF
-- MEDIASOUPCLIENT_LOG_DEV     : OFF
-- LIBWEBRTC_INCLUDE_PATH      : /home/raphy/webrtc-checkout/src
-- LIBWEBRTC_BINARY_PATH       : /home/raphy/webrtc-checkout/src/out/m140/obj

-- 
Fetching libsdptransform...

CMake Error at build/_deps/libsdptransform-src/CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 3.5 has been removed from CMake.

  Update the VERSION argument <min> value.  Or, use the <min>...<max> syntax
  to tell CMake that the project requires at least <min> but has been updated
  to work with policies introduced by <max> or earlier.

  Or, add -DCMAKE_POLICY_VERSION_MINIMUM=3.5 to try configuring anyway.


-- Configuring incomplete, errors occurred!



raphy@raohy:~/libmediasoupclient$ nano build/_deps/libsdptransform-src/CMakeLists.txt :

cmake_minimum_required(VERSION 3.10


raphy@raohy:~/libmediasoupclient$ cmake . -Bbuild   -DLIBWEBRTC_INCLUDE_PATH:PATH=${PATH_TO_LIBWEBRTC_SOURCES} -DLIBWEBRTC_BINARY_PATH:PATH=${PATH_TO_LIBWEBRTC_BINARY} -DCMAKE_CXX_FLAGS="-fvisibility=hidden"

=========== libmediasoupclient Build Configuration ===========

-- MEDIASOUPCLIENT_BUILD_TESTS : OFF
-- MEDIASOUPCLIENT_LOG_TRACE   : OFF
-- MEDIASOUPCLIENT_LOG_DEV     : OFF
-- LIBWEBRTC_INCLUDE_PATH      : /home/raphy/webrtc-checkout/src
-- LIBWEBRTC_BINARY_PATH       : /home/raphy/webrtc-checkout/src/out/m140/obj

-- 
Fetching libsdptransform...

-- The C compiler identification is GNU 13.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Configuring done (0.2s)
-- Generating done (0.0s)
-- Build files have been written to: /home/raphy/libmediasoupclient/build





raphy@raohy:~/libmediasoupclient$ make -C build/
make: Entering directory '/home/raphy/libmediasoupclient/build'
make[1]: Entering directory '/home/raphy/libmediasoupclient/build'
make[2]: Entering directory '/home/raphy/libmediasoupclient/build'
make[2]: Leaving directory '/home/raphy/libmediasoupclient/build'
make[2]: Entering directory '/home/raphy/libmediasoupclient/build'
[  3%] Building CXX object _deps/libsdptransform-build/CMakeFiles/sdptransform.dir/src/grammar.cpp.o
[  7%] Building CXX object _deps/libsdptransform-build/CMakeFiles/sdptransform.dir/src/parser.cpp.o
[ 11%] Building CXX object _deps/libsdptransform-build/CMakeFiles/sdptransform.dir/src/writer.cpp.o
[ 15%] Linking CXX static library libsdptransform.a
make[2]: Leaving directory '/home/raphy/libmediasoupclient/build'
[ 15%] Built target sdptransform
make[2]: Entering directory '/home/raphy/libmediasoupclient/build'
make[2]: Leaving directory '/home/raphy/libmediasoupclient/build'
make[2]: Entering directory '/home/raphy/libmediasoupclient/build'
[ 19%] Building CXX object CMakeFiles/mediasoupclient.dir/src/Consumer.cpp.o
[ 23%] Building CXX object CMakeFiles/mediasoupclient.dir/src/DataConsumer.cpp.o
[ 26%] Building CXX object CMakeFiles/mediasoupclient.dir/src/DataProducer.cpp.o
In file included from /home/raphy/webrtc-checkout/src/api/turn_customizer.h:17,
                 from /home/raphy/webrtc-checkout/src/api/peer_connection_interface.h:125,
                 from /home/raphy/libmediasoupclient/include/PeerConnection.hpp:5,
                 from /home/raphy/libmediasoupclient/include/Handler.hpp:4,
                 from /home/raphy/libmediasoupclient/include/DataProducer.hpp:4,
                 from /home/raphy/libmediasoupclient/src/DataProducer.cpp:3:
/home/raphy/webrtc-checkout/src/p2p/base/port_interface.h:58:26: error: declaration of ‘virtual const webrtc::Network* webrtc::PortInterface::Network() const’ changes meaning of ‘Network’ [-Wchanges-meaning]
   58 |   virtual const Network* Network() const = 0;
      |                          ^~~~~~~
/home/raphy/webrtc-checkout/src/p2p/base/port_interface.h:58:17: note: used here to mean ‘class webrtc::Network’
   58 |   virtual const Network* Network() const = 0;
      |                 ^~~~~~~
In file included from /home/raphy/webrtc-checkout/src/p2p/base/port_interface.h:29:
/home/raphy/webrtc-checkout/src/rtc_base/network.h:194:18: note: declared here
  194 | class RTC_EXPORT Network {
      |                  ^~~~~~~
make[2]: *** [CMakeFiles/mediasoupclient.dir/build.make:107: CMakeFiles/mediasoupclient.dir/src/DataProducer.cpp.o] Error 1
make[2]: Leaving directory '/home/raphy/libmediasoupclient/build'
make[1]: *** [CMakeFiles/Makefile2:154: CMakeFiles/mediasoupclient.dir/all] Error 2
make[1]: Leaving directory '/home/raphy/libmediasoupclient/build'
make: *** [Makefile:136: all] Error 2
make: Leaving directory '/home/raphy/libmediasoupclient/build'

Other Info:

OS: Ubuntu 24.04
gcc:  13.3.0

I suppressed the error message by modifying CMakeLists.txt file :

raphy@raohy:~/libmediasoupclient$ nano CMakeLists.txt : 

# Add some compile flags to our source files.
if(MSVC)
        set_source_files_properties(${SOURCE_FILES}
                PROPERTIES COMPILE_FLAGS "/W3")
else()
        set_source_files_properties(${SOURCE_FILES}
                #PROPERTIES COMPILE_FLAGS -Wall -Wextra -Wpedantic)
                PROPERTIES COMPILE_FLAGS -w)
endif()



raphy@raohy:~/libmediasoupclient$ cmake . -Bbuild   -DLIBWEBRTC_INCLUDE_PATH:PATH=${PATH_TO_LIBWEBRTC_SOURCES}   -DLIBWEBRTC_BINARY_PATH:PATH=${PATH_TO_LIBWEBRTC_BINARY}

=========== libmediasoupclient Build Configuration ===========

-- MEDIASOUPCLIENT_BUILD_TESTS : OFF
-- MEDIASOUPCLIENT_LOG_TRACE   : OFF
-- MEDIASOUPCLIENT_LOG_DEV     : OFF
-- LIBWEBRTC_INCLUDE_PATH      : /home/raphy/webrtc-checkout/src
-- LIBWEBRTC_BINARY_PATH       : /home/raphy/webrtc-checkout/src/out/m140/obj

-- 
Fetching libsdptransform...

-- Configuring done (0.1s)
-- Generating done (0.0s)
-- Build files have been written to: /home/raphy/libmediasoupclient/build



raphy@raohy:~/libmediasoupclient$ make -C build/
make: Entering directory '/home/raphy/libmediasoupclient/build'
make[1]: Entering directory '/home/raphy/libmediasoupclient/build'
make[2]: Entering directory '/home/raphy/libmediasoupclient/build'
make[2]: Leaving directory '/home/raphy/libmediasoupclient/build'
[ 15%] Built target sdptransform
make[2]: Entering directory '/home/raphy/libmediasoupclient/build'
make[2]: Leaving directory '/home/raphy/libmediasoupclient/build'
make[2]: Entering directory '/home/raphy/libmediasoupclient/build'
[ 19%] Building CXX object CMakeFiles/mediasoupclient.dir/src/Consumer.cpp.o
[ 23%] Building CXX object CMakeFiles/mediasoupclient.dir/src/DataConsumer.cpp.o
[ 26%] Building CXX object CMakeFiles/mediasoupclient.dir/src/DataProducer.cpp.o
[ 30%] Building CXX object CMakeFiles/mediasoupclient.dir/src/Device.cpp.o
[ 34%] Building CXX object CMakeFiles/mediasoupclient.dir/src/Handler.cpp.o
[ 38%] Building CXX object CMakeFiles/mediasoupclient.dir/src/Logger.cpp.o
[ 42%] Building CXX object CMakeFiles/mediasoupclient.dir/src/PeerConnection.cpp.o
[ 46%] Building CXX object CMakeFiles/mediasoupclient.dir/src/Producer.cpp.o
[ 50%] Building CXX object CMakeFiles/mediasoupclient.dir/src/Transport.cpp.o
[ 53%] Building CXX object CMakeFiles/mediasoupclient.dir/src/mediasoupclient.cpp.o
[ 57%] Building CXX object CMakeFiles/mediasoupclient.dir/src/ortc.cpp.o
[ 61%] Building CXX object CMakeFiles/mediasoupclient.dir/src/scalabilityMode.cpp.o
[ 65%] Building CXX object CMakeFiles/mediasoupclient.dir/src/sdp/MediaSection.cpp.o
[ 69%] Building CXX object CMakeFiles/mediasoupclient.dir/src/sdp/RemoteSdp.cpp.o
[ 73%] Building CXX object CMakeFiles/mediasoupclient.dir/src/sdp/Utils.cpp.o
[ 76%] Linking CXX static library libmediasoupclient.a
make[2]: Leaving directory '/home/raphy/libmediasoupclient/build'
[ 76%] Built target mediasoupclient
make[2]: Entering directory '/home/raphy/libmediasoupclient/build'
make[2]: Leaving directory '/home/raphy/libmediasoupclient/build'
make[2]: Entering directory '/home/raphy/libmediasoupclient/build'
[ 80%] Building CXX object _deps/libsdptransform-build/test/CMakeFiles/test_sdptransform.dir/tests.cpp.o
[ 84%] Building CXX object _deps/libsdptransform-build/test/CMakeFiles/test_sdptransform.dir/parse.test.cpp.o
[ 88%] Building CXX object _deps/libsdptransform-build/test/CMakeFiles/test_sdptransform.dir/catch_amalgamated.cpp.o
[ 92%] Linking CXX executable test_sdptransform
make[2]: Leaving directory '/home/raphy/libmediasoupclient/build'
[ 92%] Built target test_sdptransform
make[2]: Entering directory '/home/raphy/libmediasoupclient/build'
make[2]: Leaving directory '/home/raphy/libmediasoupclient/build'
make[2]: Entering directory '/home/raphy/libmediasoupclient/build'
[ 96%] Building CXX object _deps/libsdptransform-build/readme-helper/CMakeFiles/sdptransform_readme_helper.dir/readme.cpp.o
[100%] Linking CXX executable sdptransform_readme_helper
make[2]: Leaving directory '/home/raphy/libmediasoupclient/build'
[100%] Built target sdptransform_readme_helper
make[1]: Leaving directory '/home/raphy/libmediasoupclient/build'
make: Leaving directory '/home/raphy/libmediasoupclient/build'
raphy@raohy:~/libmediasoupclient$ 

But this shouldn't be fine.
This error: declaration of ‘virtual const webrtc::Network* webrtc::PortInterface::Network() const’ changes meaning of ‘Network should be fixed

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions