limbonaut / limboai

LimboAI - Behavior Trees and State Machines for Godot 4
MIT License
780 stars 24 forks source link

In linux missing .so #119

Closed MachinistJohn closed 1 month ago

MachinistJohn commented 1 month ago

any way you can recompile the linux editor using gcc-12 i can't get gcc-13 without compiling it myself (debian). there is an error of a glibc++ 3.4.32 mine only goes up to .30 and my repo doesnt carry it (gcc-13)

limbonaut commented 1 month ago

GDExtension or module? EDIT: NVM, my eyes don't read today.

limbonaut commented 1 month ago

any way you can recompile the linux editor using gcc-12 i can't get gcc-13 without compiling it myself (debian). there is an error of a glibc++ 3.4.32 mine only goes up to .30 and my repo doesnt carry it (gcc-13)

Can you check out the following build? https://github.com/limbonaut/limboai/actions/runs/9236401413

It is compiled with a different toolchain (IIRC that one uses .28 libc). I changed the toolchain recently in order to support Steam Deck. Should also work on Debian.

EDIT: Here's also v1.0.2 built using that toolchain: https://github.com/limbonaut/limboai/actions/runs/9245519154

MachinistJohn commented 1 month ago

hi, i tried both of them but no luck. i looked into updating my libstdc++6 to make it work and looks like it would send me to dependency hell. Any ways here is a copy of the error message Can't open dynamic library: /home/john/Pirate/godot/Pirate/addons/limboai/bin/liblimboai.linux.editor.x86_64.so. Error: /lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.32' not found (required by /home/john/Pirate/godot/Pirate/addons/limboai/bin/liblimboai.linux.editor.x86_64.so). core/extension/gdextension.cpp:719 - GDExtension dynamic library not found: /home/john/Pirate/godot/Pirate/addons/limboai/bin/liblimboai.linux.editor.x86_64.so Failed loading resource: res://addons/limboai/bin/limboai.gdextension. Make sure resources have been imported by opening the project in the editor at least once.

limbonaut commented 1 month ago

I ran the following command on the updated lib:

strings liblimboai.linux.editor.x86_64.so | grep GLIBCXX

Output:

GLIBCXX_3.4.18
GLIBCXX_3.4
GLIBCXX_3.4.15

AFAIK it shouldn't require GLIBCXX_3.4.32. Could you check if it outputs the same on your system?

PS: This is the library I checked (it's from the updated v1.0.2 build):

$ sha256sum liblimboai.linux.editor.x86_64.so
d5248b1874712d8a45899f5db466ff4a03129a03a59b8429fb6333a87bf86b2e  liblimboai.linux.editor.x86_64.so

EDIT: This is the output on the libstdc++ from the buildroot I'm using:

$ strings libstdc++.so | 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_3.4.26
GLIBCXX_3.4.27
GLIBCXX_3.4.28
GLIBCXX_DEBUG_MESSAGE_LENGTH
MachinistJohn commented 1 month ago

$ strings liblimboai.linux.editor.x86_64.so | grep GLIBCXX strings: 'liblimboai.linux.editor.x86_64.so': No such file

$ strings libstdc++.so | grep GLIBCXX strings: 'libstdc++.so': No such file

$ strings /usr/lib/i386-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_3.4.26 GLIBCXX_3.4.27 GLIBCXX_3.4.28 GLIBCXX_3.4.29 GLIBCXX_3.4.30 GLIBCXX_DEBUG_MESSAGE_LENGTH

MachinistJohn commented 1 month ago

Does there need to be a Environment Path made to the shared object? Also you should know i using mx-linux 23 if that helps.

limbonaut commented 1 month ago

$ strings liblimboai.linux.editor.x86_64.so | grep GLIBCXX strings: 'liblimboai.linux.editor.x86_64.so': No such file

You need to run it from inside the res://addons/limboai/bin/ folder, or use the absolute path to that file.

Judging by the output you provided, the updated build should work for you. Can you try deleting the addons/limboai in file manager and check the updated version from this package: https://github.com/limbonaut/limboai/releases/download/v1.0.2/limboai+v1.0.2.gdextension-4.2.zip?

MachinistJohn commented 1 month ago

It crashed godot

MachinistJohn commented 1 month ago

$ strings liblimboai.linux.editor.x86_64.so | grep GLIBCXX GLIBCXX_3.4.32 GLIBCXX_3.4.18 GLIBCXX_3.4.29 GLIBCXX_3.4 GLIBCXX_3.4.15

limbonaut commented 1 month ago

It crashed godot

It might if you do it while godot is running. Did it help?

limbonaut commented 1 month ago

Try these steps (I checked in VM with MX Linux 23.3, and this worked for me):

  1. Make sure you're using the latest stable version of the Godot editor.
  2. Create a new project for your experiments with LimboAI.
  3. In Godot, click AssetLib tab at the top of the screen and search for LimboAI. Download it. LimboAI plugin will be downloaded with the demo project files. Don't mind the errors printed at this point, this is due to the extension library not being loaded just yet.
  4. Reload your project with Project -> Reload project. There shouldn't be any errors printed now.
  5. In the project files, locate a scene file called showcase.tscn and run it. It's the demo's entry point.
MachinistJohn commented 1 month ago

yes that worked without errors. does that mean i cant use limboai compiled into the editor or that maybe one of the other addons is interfering with limboai? i had that happen the other day with terrain3d and orchestrator. orchestrator was causing the editor to crash when i tried to use terrain3d.

limbonaut commented 1 month ago

yes that worked without errors. does that mean i cant use limboai compiled into the editor or that maybe one of the other addons is interfering with limboai? i had that happen the other day with terrain3d and orchestrator. orchestrator was causing the editor to crash when i tried to use terrain3d.

Try the editor from the updated package: https://github.com/limbonaut/limboai/releases/download/v1.0.2/limboai+v1.0.2.godot-4.2.2.editor.linux.x86_64.zip Just checked, it works for me in MX Linux 23.3.

limbonaut commented 1 month ago

yes that worked without errors. does that mean i cant use limboai compiled into the editor or that maybe one of the other addons is interfering with limboai? i had that happen the other day with terrain3d and orchestrator. orchestrator was causing the editor to crash when i tried to use terrain3d.

BTW if you are using custom editor build, you SHOULDN'T put the extension into your project. LimboAI's functionality is built-in into the editor binary and the custom templates. In other words, you shouldn't have res://addons/limboai folder in your project.

MachinistJohn commented 1 month ago

yes that worked, but is there a .Net version to use?

limbonaut commented 1 month ago

This is the updated release: https://github.com/limbonaut/limboai/releases/tag/v1.0.2 I rebuilt the packages using the new toolchain, if that one worked for you, then the .NET one should as well.

MachinistJohn commented 1 month ago

ok thanks alot for your help. I hope i wasnt too much of a pain.

limbonaut commented 1 month ago

Not a problem, did it work for you?

MachinistJohn commented 1 month ago

yes working fine now. Thanks again!

limbonaut commented 1 month ago

Thanks for reporting. I changed the build process, so the future builds should be compatible with older versions of libc++.