GDExtension class inheriting from a class in another GDExtension prints error message when re-registers base class bindings.

Godot Version

4.5.1 stable

Question

I have a seemingly benign error message when I am using multiple GDExtensions where one extension inherits a class from the other extension. (Note that it was a bit of a pain to get that working, but it certainly seems to work). The error message is due to re-registering the base class bind_methods, which is not handled properly when the base class is in a different extension.

The errors are:

ERROR: Unimplemented yet
  at: _register_extension_class_internal (core/extension/gdextension.cpp:392)ERROR: Binding duplicate method: BFCoreEX::print_type().
  at: bind_methodfi (/home/j/BFD/godot/Extensions/godot-cpp/src/core/class_db.cpp:143)

and where the “Unimplemented yet” error comes from in GDExtension::_register_extension_class_internal is a comment ‘//inheriting from another extension”.

Everything seems to be working fine. Base and derived class functions are executing properly. I’m just wondering if there is something obvious I should watch out for here or if I should avoid using this multiple extension setup for now.

This is not recommended as it lacks official support. You can follow this link to stay informed about support status:

https://github.com/godotengine/godot-proposals/issues/13997

Thanks, I didn’t see that when looking.

Maybe I’ll look at compiling both a static and dynamic version of my core gdextension so it could be used individually or statically linked into another extension.