GodotECS / godex

Godex is a Godot Engine ECS library.
MIT License
1.22k stars 67 forks source link

Linux build errors #85

Closed xenogenesi closed 3 years ago

xenogenesi commented 3 years ago

Impressive work, thanks for sharing it. I wanted to try it out before finding out that my card is probably too old, I create this issue only FYI, close it when you want.

I tried to build master first then the branch mentioned in the wiki Setup page, without the godex module and without the patch I can build and run both, if I add the module and apply the patch I have errors with both:

Debian/sid gcc-10

branch master:

[ 33%] Compiling ==> modules/godex/main.cpp
[ 33%] Compiling ==> modules/godex/register_types.cpp
In file included from modules/godex/register_types.cpp:17:
modules/godex/godot/editor_plugins/editor_world_ecs.h:137:7: error: 'void EditorWorldECS::_changed_callback(Object*, const char*)' marked 'override', but does not override
  137 |  void _changed_callback(Object *p_changed, const char *p_prop) override;
      |       ^~~~~~~~~~~~~~~~~
In file included from modules/godex/register_types.cpp:18:
modules/godex/godot/editor_plugins/entity_editor_plugin.h:42:15: error: 'virtual void EntityEditor::_changed_callback(Object*, const char*)' marked 'override', but does not override
   42 |  virtual void _changed_callback(Object *p_changed, const char *p_prop) override;
      |               ^~~~~~~~~~~~~~~~~
In file included from modules/godex/godot/editor_plugins/components_gizmo_3d.h:3,
                 from modules/godex/register_types.cpp:16:
modules/godex/godot/editor_plugins/../nodes/entity.h: In instantiation of 'void EntityInternal<C>::update_components_data() [with C = Entity3D]':
modules/godex/godot/editor_plugins/../nodes/entity.h:202:33:   required from here
modules/godex/godot/editor_plugins/../nodes/entity.h:745:9: error: 'class Entity3D' has no member named '_change_notify'
  745 |  owner->_change_notify("components_data");
      |  ~~~~~~~^~~~~~~~~~~~~~
modules/godex/godot/editor_plugins/../nodes/entity.h: In instantiation of 'void EntityInternal<C>::update_components_data() [with C = Entity2D]':
modules/godex/godot/editor_plugins/../nodes/entity.h:293:33:   required from here
modules/godex/godot/editor_plugins/../nodes/entity.h:745:9: error: 'class Entity2D' has no member named '_change_notify'
scons: *** [modules/godex/register_types.linuxbsd.tools.64.o] Error 1
scons: building terminated because of errors.

detached branch over 36c943260ed40c6e31a6ecff7f6e1674714b4fcb:

[ 30%] Linking Static Library ==> modules/libmodule_gridmap.linuxbsd.tools.64.a
Ranlib Library         ==> modules/libmodule_gridmap.linuxbsd.tools.64.a
[ 30%] Compiling ==> modules/godex/components/child.cpp
In file included from modules/godex/components/../systems/../iterators/query.h:5,
                 from modules/godex/components/../systems/system_builder.h:7,
                 from modules/godex/components/../ecs.h:11,
                 from modules/godex/components/component.h:5,
                 from modules/godex/components/child.h:3,
                 from modules/godex/components/child.cpp:1:
modules/godex/components/../systems/../iterators/../storage/storage.h: In member function 'void ChangeList::notify_updated(EntityID)':
modules/godex/components/../systems/../iterators/../storage/storage.h:50:14: error: 'class LocalVector<EntityID>' has no member named 'remove_unordered'
   50 |      changed.remove_unordered(index);
      |              ^~~~~~~~~~~~~~~~
modules/godex/components/../systems/../iterators/../storage/storage.h:55:13: error: 'class LocalVector<EntityID>' has no member named 'remove_unordered'
   55 |     changed.remove_unordered(index);
      |             ^~~~~~~~~~~~~~~~
scons: *** [modules/godex/components/child.linuxbsd.tools.64.o] Error 1
scons: building terminated because of errors.
fire commented 3 years ago

Confirmed.

AndreaCatania commented 3 years ago

I've just updated the godot commit in the Readme and Wiki. Can you please try use this commit: ae6b2d6edc76de347ccb11c4608b6e8174e1884f, it should solve the issue.

xenogenesi commented 3 years ago

Perfect, now the compilation is successful.

Too bad the current vulkan implementation of godot 4 is unhappy with my video card, sometimes hangs the whole system, unusable.

AndreaCatania commented 3 years ago

Nice, closing then, thanks!