webrtc-native: Error loading custom built library on Linux ("undefined symbol: _ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev")
There’s a change I want to test to the gdnative plugin, so I’m building it myself. FYI, I haven’t made my change yet, I’m just building it unchanged first to make sure I can do it.
I followed the instructions in the README.md (I used the pre-built webrtc binaries from godotengine/webrtc-actions) and successfully built a binary.
However, when I replace the pre-built version I was using previously with the one I built, I get this error when starting my game:
E 0:00:00.309 open_dynamic_library: Can't open dynamic library: /home/dsnopek/games/Retro Tank Party/webrtc/lib/libwebrtc_native.linux.release.64.so. Error: /home/dsnopek/games/Retro Tank Party/webrtc/lib/libwebrtc_native.linux.release.64.so: undefined symbol: _ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev
<C++ Error> Condition "!p_library_handle" is true. Returned: ERR_CANT_OPEN
<C++ Source> drivers/unix/os_unix.cpp:415 @ open_dynamic_library()
Any ideas?
I built the gdnative plugin with GCC, which is also what I used to build Godot itself.
Thanks in advance!
About this issue
- Original URL
- State: closed
- Created 3 years ago
- Comments: 18 (9 by maintainers)
I haven’t checked details but note that glib and glibc are two different libraries. The dependency on glibcxx symbols comes from building against a recent glibc, which makes binaries not portable for distros with older glibc.
Yes, this is the release that was used: https://github.com/Faless/webrtc-builds/releases/tag/4472-33644-92ba70c