Comments (18)
Do you still have it laying around?
Yes, this is the release that was used: https://github.com/Faless/webrtc-builds/releases/tag/4472-33644-92ba70c
from webrtc-native.
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.
from webrtc-native.
That's weird, I'm using gcc
too.
gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Could you also try with clang? Is Godot a stable release or a custom one? (I only tested latest stable with a fresh plugin build)
from webrtc-native.
And does the pre-built plugin works?
Well, that was actually manually built with a different WebRTC binary build setup.
from webrtc-native.
Could you also try with clang?
I could try with clang!
Is Godot a stable release or a custom one? (I only tested latest stable with a fresh plugin build)
I'm using Godot 3.3.2 + the change in godotengine/godot#49976
However, I just tried using the official Godot 3.3.2 build and I still get the same error loading my custom build of the plugin.
-And does the pre-built plugin works?-
Even though you crossed it out, yes, the pre-built gdnative plugin works. It's swapping in my custom built on that gives me this error.
Well, that was actually manually built with a different WebRTC binary build setup.
Hm, so not the binary from godotengine/webrtc-actions? Do you still have it laying around? I could try using that and see what happens
from webrtc-native.
By cloning the repository you can also get automated builds of the plugin via CI actions.
Since you are a member you should also be able to download this: https://github.com/godotengine/webrtc-native/actions/runs/1019716854 (which is a recent run using the fully automated setup).
from webrtc-native.
Since you are a member you should also be able to download this: https://github.com/godotengine/webrtc-native/actions/runs/1019716854 (which is a recent run using the fully automated setup).
Hm, so I just tried the plugins built on that run and they work fine for me.
So, it's definitely something on my end that's messing up the plugin. I'm not sure what try, beyond just switching to clang and seeing if that works...
from webrtc-native.
So, the thing that comes to mind is a mismatch in the libstdc++
version.
You can try applying this small patch:
diff --git a/SConstruct b/SConstruct
index 4fbe324..dd7126b 100644
--- a/SConstruct
+++ b/SConstruct
@@ -120,7 +120,7 @@ if target_platform == "linux":
env.Append(CCFLAGS=["-m64"])
env.Append(LINKFLAGS=["-m64"])
# i386 does not like static libstdc++
- env.Append(LINKFLAGS=["-static-libgcc", "-static-libstdc++"])
+ #env.Append(LINKFLAGS=["-static-libgcc", "-static-libstdc++"])
elif target_platform == "windows":
if host_platform == "Windows":
Rebuild, and check if it still fails, then with:
ldd bin/webrtc_debug/lib/libwebrtc_native.linux.debug.64.so
You will get something like:
linux-vdso.so.1 (0x00007ffee929b000)
libatomic.so.1 => /usr/lib/x86_64-linux-gnu/libatomic.so.1 (0x00007f173db68000)
>>> libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f173d986000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f173d837000)
>>> libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f173d81c000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f173d62a000)
/lib64/ld-linux-x86-64.so.2 (0x00007f173f150000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f173d607000)
from webrtc-native.
I just rebuilt Godot, the godot-cpp bindings and the plugin with clang and, unfortunately, I still get the exact same error. I double checked the binaries with objdump
and I'm definitely using the clang versions now.
I'll try your patch next!
from webrtc-native.
I tried the patch (using clang, because I didn't want to rebuild everything again), and it still fails. I ran ldd
on the plugin and I get basically the same as you above:
$ ldd libwebrtc_native.linux.debug.64.so
linux-vdso.so.1 (0x00007ffe217d4000)
libatomic.so.1 => /usr/lib/x86_64-linux-gnu/libatomic.so.1 (0x00007fabe8e88000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fabe8aff000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fabe8761000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fabe8549000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fabe8158000)
/lib64/ld-linux-x86-64.so.2 (0x00007fabea7ed000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fabe7f39000)
from webrtc-native.
I'm trying to rebuild webrtc using the build.sh from https://github.com/Faless/webrtc-builds - I'm expecting that to probably run over night :-)
from webrtc-native.
@dsnopek on linux you might need to comment out this step: https://github.com/Faless/webrtc-builds/blob/master/build.sh#L116
from webrtc-native.
Trying to rebuild webrtc leads to this error:
python ../../../build/util/python2_action.py ../../../tools/protoc_wrapper/protoc_wrapper.py config.proto --protoc ./protoc --proto-in-dir ../../../modules/audio_coding/audio_network_adaptor --cc-out-dir gen/modules/audio_coding/audio_network_adaptor --py-out-dir pyproto/modules/audio_coding/audio_network_adaptor
/home/dsnopek/prj/webrtc-builds/godot_linux_4472/src/out/x64/Debug/protoc: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by /home/dsnopek/prj/webrtc-builds/godot_linux_4472/src/out/x64/Debug/protoc)
And if I check in libstdc++.so.6 I can see that GLIBCXX_3.4.26 isn't present:
$ strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBCXX_3.4.22
GLIBCXX_3.4.23
GLIBCXX_3.4.24
GLIBCXX_3.4.25
GLIBCXX_DEBUG_MESSAGE_LENGTH
I tried using a Docker image of Ubuntu 18.04 (the same as on my host system) to see if my system was somehow messed up, and fully updating the vanilla image still shows libstdc++.so.6 is missing GLIBCXX_3.4.26.
Maybe I should be using some PPA to update libstdc++6 to an even newer version?
from webrtc-native.
from webrtc-native.
from webrtc-native.
from webrtc-native.
If you are using the build script in the
webrtc-builds
see the release notes for the exact command.
Yes, I was/am using the exact command from the release page.
In any case, I spent yesterday going through the painful process of upgrading to Ubuntu 20.04 (I made my machine unbootable only twice in process! :-)), and after recompiling godot-cpp and the plugin, it now loads fine.
So, it was something with Ubuntu 18.04, but also probably with my system in particular. This machine started out on 16.04 and was upgraded in-place to 18.04, so there's definitely a chance that I had some weirdness going on. (Of course, I just did an in-place upgrade to 20.04, but at least the current weirdness isn't breaking this build.)
Thanks for all the help!!
I've also started the build.sh from webrtc-build again - we'll see if that finally works for me on 20.04 too.
from webrtc-native.
I've also started the build.sh from webrtc-build again - we'll see if that finally works for me on 20.04 too.
A quick follow-up on this: I wasn't expecting it to finish so quickly, but this build succeeded too! I copied the result binaries into the plugin source and rebuilt, and the resulting plugin worked. So, it seems upgrading to 20.04 has solved all my building issues. :-)
from webrtc-native.
Related Issues (20)
- NixOS error: libstdc++.so.6: cannot open shared object file: No such file or directory
- Can't establish a communication in NakamaWebRTC project HOT 1
- WebRtcPeerConnection is failing half the time on C# HOT 5
- Can't load WebRTC native plugin on the Mac HOT 2
- Plugin is available in the AssetLib but installs wrongly. HOT 3
- Exporting .ipa to appstore fails HOT 2
- Extension crashes on startup HOT 6
- MacOS, The developer cannot be verified HOT 10
- ICE exchange does not work properly when a native client creates an offer to a browser HOT 5
- Can't build with Godot 4.2-rc1 and MSVC HOT 2
- Crash when using along other GDExtensions HOT 32
- `Invalid candidate format` When adding an ice candidate generated from browser WebRTC HOT 3
- Error when exporting for Web: No suitable library found for GDExtension HOT 3
- Installing from asset library doesnt put everything in a addons/ folder HOT 1
- Enable logging in godot as well HOT 1
- When runing function create_offer() of WebRTCPeerConnection from the editor 1-10000 times, there is approximately 1 and more constant error _create_offer: Failed to gather local ICE candidates HOT 3
- Exporting to MacOS creates an error.
- Make builds for major and minor releases HOT 3
- Linux: bad glibc version HOT 3
- Release export crash HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from webrtc-native.