Skip to content

Godot errors under Linux #15

Description

@zzyzek

I'm trying to get the Godot extension working and running into problems.

I'll try and reproduce the relevant details here along with my system specs.

First, I clone and compile:

$ git clone --recurse-submodules https://github.com/zzyzek/PMUGG
$ cd PMUGG/godot/godot-cpp
$ git switch 4.4
$ cd ..
$ scons platform=linux target=template_debug

I've merged the latest into my own repo (1ced221).

This compiles without error. Note that depending on which branch I switch to, there might be errors in the compilation step (I think 4.1 throws an error). I tried using a branch that matches the Godot version I'll ultimately run (4.4).

I've gone to Godot and downloaded their 4.4.1 build (here).

I run Godot 4.4.1 and import the project in .../PMUGG/godot/demo/project.godot. Godot runs but spits out errors on the command line:

$ ./Godot_v4.4.1-stable_linux.x86_64 
Godot Engine v4.4.1.stable.official.49a5bc7b6 - https://godotengine.org
OpenGL API 4.6 (Core Profile) Mesa 23.2.1-1ubuntu3.1~22.04.3 - Compatibility - Using Device: Intel - Mesa Intel(R) HD Graphics 530 (SKL GT2)

Editing project: /home/zzyzek/zzyzek.git/PMUGG/godot/demo
ERROR: Can't open dynamic library: /home/zzyzek/git/github/zzyzek/PMUGG/godot/demo/bin/libgdexample.linux.template_debug.x86_64.so. Error: /home/zzyzek/git/github/zzyzek/PMUGG/godot/demo/bin/libgdexample.linux.template_debug.x86_64.so: undefined symbol: setSize.
   at: open_dynamic_library (drivers/unix/os_unix.cpp:896)
ERROR: Can't open GDExtension dynamic library: 'res://bin/gdexample.gdextension'.
   at: open_library (core/extension/gdextension.cpp:702)
ERROR: Error loading extension: 'res://bin/gdexample.gdextension'.
   at: load_extensions (core/extension/gdextension_manager.cpp:291)
Godot Engine v4.4.1.stable.official.49a5bc7b6 - https://godotengine.org
Vulkan 1.3.255 - Forward+ - Using Device #0: Intel - Intel(R) HD Graphics 530 (SKL GT2)

ERROR: Can't open dynamic library: /home/zzyzek/git/github/zzyzek/PMUGG/godot/demo/bin/libgdexample.linux.template_debug.x86_64.so. Error: /home/zzyzek/git/github/zzyzek/PMUGG/godot/demo/bin/libgdexample.linux.template_debug.x86_64.so: undefined symbol: setSize.
   at: open_dynamic_library (drivers/unix/os_unix.cpp:896)
ERROR: Can't open GDExtension dynamic library: 'res://bin/gdexample.gdextension'.
   at: open_library (core/extension/gdextension.cpp:702)
ERROR: Can't open dynamic library: /home/zzyzek/git/github/zzyzek/PMUGG/godot/demo/bin/libgdexample.linux.template_debug.x86_64.so. Error: /home/zzyzek/git/github/zzyzek/PMUGG/godot/demo/bin/libgdexample.linux.template_debug.x86_64.so: undefined symbol: setSize.
   at: open_dynamic_library (drivers/unix/os_unix.cpp:896)
ERROR: Can't open GDExtension dynamic library: 'res://bin/gdexample.gdextension'.
   at: open_library (core/extension/gdextension.cpp:702)
ERROR: Cannot get class 'GrammarEditor'.
   at: _instantiate_internal (core/object/class_db.cpp:549)

My best guess is that this is a version mismatch between the Godot API and what version of the Godot API PMUGG is trying to use. I've tried other versions and gotten different run-time errors that can't find symbols in the various shared libraries. Here it's setSize but in others I believe it was iterate and I may have seen another one.

Was this developed with a particular Godot version? Have you been able to get this working with a particular Godot version?

I'm a little reluctant to try and muck around with the PMUGG code because I don't know what it's doing and I don't have much experience with Godot or it's API.

Some relevant details on my system setup:

$ uname -a
Linux ... 6.8.0-64-generic #67~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue Jun 24 15:19:46 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
$ g++ --version
g++ (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
Copyright (C) 2021 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.
$ scons --version
SCons by Steven Knight et al.:
        SCons: v4.0.1.c289977f8b34786ab6c334311e232886da7e8df1, 2020-07-17 01:50:03, by bdbaddog on ProDog2020
        SCons path: ['/usr/lib/python3/dist-packages/SCons']
Copyright (c) 2001 - 2020 The SCons Foundation

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions