GsLogiMaker / glecs_godot_plugin

4 stars 0 forks source link

Error [For Windows] CrashHandlerException: Program crashed with signal 11 #23

Open lavstudia opened 1 week ago

lavstudia commented 1 week ago

Run main.gs:

Input ready Test start

================================================================ CrashHandlerException: Program crashed with signal 11 Engine version: Godot Engine v4.3.stable.mono.official (77dcf97d82cbfe4e4615475fa52ca03da645dbd8) Dumping the backtrace. Please include this when reporting the bug to the project developer. [1] error(-1): no debug info in PE/COFF executable [2] error(-1): no debug info in PE/COFF executable [3] error(-1): no debug info in PE/COFF executable [4] error(-1): no debug info in PE/COFF executable [5] error(-1): no debug info in PE/COFF executable [6] error(-1): no debug info in PE/COFF executable -- END OF BACKTRACE --

GsLogiMaker commented 1 week ago

Which branch did you run? The most up to date, and functional branch is the cpp branch, which will be merged to the dev branch once it matches the dev branch in features. The main branch will not be functional until the first public release of Glecs.

GsLogiMaker commented 1 week ago

I also have not yet tested for operating systems other than Linux nor the mono build of Godot. This project is still fairly early, and I do not expect it to work on other machines yet.

GsLogiMaker commented 1 week ago

Thank you for your interest in the project!

lavstudia commented 1 week ago

Great project!

cpp branch. Minor modifications with SConstruct (addons/glecs/cpp) for successful build under Windows.

GsLogiMaker commented 1 week ago

What changes did you make? I might need to add them to the project. Also, I don't think I setup the .gdextension file properly for any platforms other than linux x86_64 debug.

lavstudia commented 1 week ago

I’m not sure that I’m very competent in this matter, but for me this turned out to be a working option:

  1. ./addons/glecs/cpp/SConstruct
...

platform:str = env["platform"]
target:str = env["target"]
suffix:str = env["suffix"]
shlib_suffix:str = env["SHLIBSUFFIX"]

# TODO: For Windows
env['CXXFLAGS'].remove('/std:c++17')
env.Append(CXXFLAGS=['/std:c++20'])

# For reference:
# - CCFLAGS are compilation flags shared between C and C++

# - CFLAGS are for C-specific compilation flags
# - CXXFLAGS are for C++-specific compilation flags
# - CPPFLAGS are for pre-processor flags
# - CPPDEFINES are for pre-processor defines
# - LINKFLAGS are for linking flags

...
  1. ./addons/glecs/cpp/glecs.gdextension
...

windows.release.x86_64 = "./bin/libglecs.windows.template_debug.x86_64.dll"
windows.debug.x86_64 = "./bin/libglecs.windows.template_debug.x86_64.dll"

...
GsLogiMaker commented 1 week ago

That's weird that you need to change the cpp version to 20. When you build, you just run the command scons with no other arguments, right?

lavstudia commented 1 week ago

I Build it via: scons --directory addons/glecs/cpp target=template_debug debug_symbols=yes optimize=debug or scons --directory addons/glecs/cpp

doesn't matter

If you do not change the cpp version, there will be an error:

...

src\component_builder.cpp(45): error C7555: use of designated initializers requires at least '/std:c++20'
src\component_builder.cpp(112): error C7555: use of designated initializers requires at least '/std:c++20'
scons: *** [src\component_builder.windows.template_debug.x86_64.obj] Error 2
src\module.cpp(66): error C7555: use of designated initializers requires at least '/std:c++20'
scons: *** [src\module.windows.template_debug.x86_64.obj] Error 2
src\observer_builder.cpp(31): error C7555: use of designated initializers requires at least '/std:c++20'
scons: *** [src\observer_builder.windows.template_debug.x86_64.obj] Error 2
src\querylike_builder.cpp(64): error C7555: use of designated initializers requires at least '/std:c++20'
src\querylike_builder.cpp(76): error C7555: use of designated initializers requires at least '/std:c++20'
src\querylike_builder.cpp(102): error C7555: use of designated initializers requires at least '/std:c++20'
src\querylike_builder.cpp(114): error C7555: use of designated initializers requires at least '/std:c++20'
scons: *** [src\querylike_builder.windows.template_debug.x86_64.obj] Error 2
src\system_builder.cpp(36): error C7555: use of designated initializers requires at least '/std:c++20'
scons: *** [src\system_builder.windows.template_debug.x86_64.obj] Error 2
scons: building terminated because of errors.
GsLogiMaker commented 1 week ago

It looks like a minor refactor to fix the C7555 error. I'll look into doing that.