How to export project with custom modules and external libraries

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By yukkysaito

Hi, I’m yukky and I’m still new to godot.
I’m developing the visualizer for autonomous driving called Autoware

Environment:

  • Godot version 3.4.4
  • Ubuntu 22.04

Question:
I want to export and binary release a project with a custom module.
However, when I run the execution file, I get the following error.
EgoPose not found since EgoPose is a custom module.
How can I reference it?

 yukky@yukky:~/workspace/godot_ws$ ./sample.x86_64 
Godot Engine v3.4.4.stable.official.419e713a2 - https://godotengine.org
OpenGL ES 3.0 Renderer: NVIDIA GeForce GTX 1080 Ti/PCIe/SSE2
OpenGL ES Batching: ON
 
SCRIPT ERROR: Parse Error: The identifier "EgoPose" isn't declared in the current scope.
          at: GDScript::load_byte_code (res://EgoVehicle.gdc:4)
ERROR: Method failed. Returning: ERR_PARSE_ERROR
   at: load_byte_code (modules/gdscript/gdscript.cpp:762)
ERROR: Cannot load byte code from file 'res://EgoVehicle.gdc'.
   at: load (modules/gdscript/gdscript.cpp:2180)
ERROR: Failed loading resource: res://EgoVehicle.gdc. Make sure resources have been imported by opening the project in the editor at least once.
   at: _load (core/io/resource_loader.cpp:270)
ERROR: res://Main.tscn:4 - Parse Error: [ext_resource] referenced nonexistent resource at: res://EgoVehicle.gd
   at: poll (scene/resources/resource_format_text.cpp:412)
ERROR: Failed to load resource 'res://Main.tscn'.
   at: load (core/io/resource_loader.cpp:206)
ERROR: Failed loading resource: res://Main.tscn. Make sure resources have been imported by opening the project in the editor at least once.
   at: _load (core/io/resource_loader.cpp:270)
ERROR: Failed loading scene: res://Main.tscn
   at: start (main/main.cpp:2011)
WARNING: ObjectDB instances leaked at exit (run with --verbose for details).
     at: cleanup (core/object.cpp:2064)
ERROR: Resources still in use at exit (run with --verbose for details).
   at: clear (core/resource.cpp:417)
ERROR: There are still MemoryPool allocs in use at exit!
   at: cleanup (core/pool_vector.cpp:63)

I know that the necessary libraries that the custom module refers to are not linked either, when I check with the ldd command.

Before export project (godot editor):

yukky@yukky:~/workspace/godot_ws/godot_rviz2/godot/bin$ ldd ./godot.x11.tools.64 
	linux-vdso.so.1 (0x00007ffe48b13000)
	libXcursor.so.1 => /lib/x86_64-linux-gnu/libXcursor.so.1 (0x00007fc0e8dc2000)
	libXinerama.so.1 => /lib/x86_64-linux-gnu/libXinerama.so.1 (0x00007fc0e8dbd000)
	libXext.so.6 => /lib/x86_64-linux-gnu/libXext.so.6 (0x00007fc0e8da8000)
	libXrandr.so.2 => /lib/x86_64-linux-gnu/libXrandr.so.2 (0x00007fc0e8d9b000)
	libXrender.so.1 => /lib/x86_64-linux-gnu/libXrender.so.1 (0x00007fc0e8d8e000)
	libX11.so.6 => /lib/x86_64-linux-gnu/libX11.so.6 (0x00007fc0e8c4c000)
	libXi.so.6 => /lib/x86_64-linux-gnu/libXi.so.6 (0x00007fc0e8c38000)
	libGL.so.1 => /lib/x86_64-linux-gnu/libGL.so.1 (0x00007fc0e8bb1000)
	librclcpp.so => /opt/ros/humble/lib/librclcpp.so (0x00007fc0e89be000)
	librcl.so => /opt/ros/humble/lib/librcl.so (0x00007fc0e8980000)
	librcutils.so => /opt/ros/humble/lib/librcutils.so (0x00007fc0e8968000)
	librmw.so => /opt/ros/humble/lib/librmw.so (0x00007fc0e895a000)
	libtracetools.so => /opt/ros/humble/lib/libtracetools.so (0x00007fc0e8955000)
	libtf2_ros.so => /opt/ros/humble/lib/libtf2_ros.so (0x00007fc0e88ba000)
	liblibstatistics_collector.so => /opt/ros/humble/lib/liblibstatistics_collector.so (0x00007fc0e88b3000)
	libpcl_common.so.1.12 => /lib/x86_64-linux-gnu/libpcl_common.so.1.12 (0x00007fc0e8819000)
	libvisualization_msgs__rosidl_typesupport_cpp.so => /opt/ros/humble/lib/libvisualization_msgs__rosidl_typesupport_cpp.so (0x00007fc0e8811000)
	libstatistics_msgs__rosidl_typesupport_cpp.so => /opt/ros/humble/lib/libstatistics_msgs__rosidl_typesupport_cpp.so (0x00007fc0e880a000)
	libsensor_msgs__rosidl_typesupport_cpp.so => /opt/ros/humble/lib/libsensor_msgs__rosidl_typesupport_cpp.so (0x00007fc0e87ff000)
	libautoware_auto_planning_msgs__rosidl_typesupport_cpp.so => not found
	libautoware_auto_perception_msgs__rosidl_typesupport_cpp.so => not found
	libautoware_auto_vehicle_msgs__rosidl_typesupport_cpp.so => not found
	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fc0e8716000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fc0e84ee000)
	/lib64/ld-linux-x86-64.so.2 (0x00007fc0e8dfa000)
	libXfixes.so.3 => /lib/x86_64-linux-gnu/libXfixes.so.3 (0x00007fc0e84e5000)
	libxcb.so.1 => /lib/x86_64-linux-gnu/libxcb.so.1 (0x00007fc0e84bb000)
	libGLdispatch.so.0 => /lib/x86_64-linux-gnu/libGLdispatch.so.0 (0x00007fc0e8403000)
	libGLX.so.0 => /lib/x86_64-linux-gnu/libGLX.so.0 (0x00007fc0e83cd000)
	librcl_interfaces__rosidl_typesupport_cpp.so => /opt/ros/humble/lib/librcl_interfaces__rosidl_typesupport_cpp.so (0x00007fc0e83c2000)
	librcl_yaml_param_parser.so => /opt/ros/humble/lib/librcl_yaml_param_parser.so (0x00007fc0e83b6000)
	librosgraph_msgs__rosidl_typesupport_cpp.so => /opt/ros/humble/lib/librosgraph_msgs__rosidl_typesupport_cpp.so (0x00007fc0e83b1000)
	librmw_implementation.so => /opt/ros/humble/lib/librmw_implementation.so (0x00007fc0e83a4000)
	libament_index_cpp.so => /opt/ros/humble/lib/libament_index_cpp.so (0x00007fc0e8399000)
	librcl_logging_interface.so => /opt/ros/humble/lib/librcl_logging_interface.so (0x00007fc0e8392000)
	librcpputils.so => /opt/ros/humble/lib/librcpputils.so (0x00007fc0e8384000)
	libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fc0e815a000)
	libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fc0e813a000)
	librcl_logging_spdlog.so => /opt/ros/humble/lib/librcl_logging_spdlog.so (0x00007fc0e8133000)
	librcl_interfaces__rosidl_typesupport_c.so => /opt/ros/humble/lib/librcl_interfaces__rosidl_typesupport_c.so (0x00007fc0e8128000)
	librcl_interfaces__rosidl_generator_c.so => /opt/ros/humble/lib/librcl_interfaces__rosidl_generator_c.so (0x00007fc0e810c000)
	librosidl_runtime_c.so => /opt/ros/humble/lib/librosidl_runtime_c.so (0x00007fc0e8101000)
	librclcpp_action.so => /opt/ros/humble/lib/librclcpp_action.so (0x00007fc0e80e0000)
	libtf2.so => /opt/ros/humble/lib/libtf2.so (0x00007fc0e80c1000)
	libtf2_msgs__rosidl_typesupport_cpp.so => /opt/ros/humble/lib/libtf2_msgs__rosidl_typesupport_cpp.so (0x00007fc0e80b9000)
	libgomp.so.1 => /lib/x86_64-linux-gnu/libgomp.so.1 (0x00007fc0e806d000)
	librosidl_typesupport_cpp.so => /opt/ros/humble/lib/librosidl_typesupport_cpp.so (0x00007fc0e8067000)
	libXau.so.6 => /lib/x86_64-linux-gnu/libXau.so.6 (0x00007fc0e8061000)
	libXdmcp.so.6 => /lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007fc0e8059000)
	libyaml.so => /opt/ros/humble/lib/libyaml.so (0x00007fc0e8037000)
	libspdlog.so.1 => /lib/x86_64-linux-gnu/libspdlog.so.1 (0x00007fc0e7fba000)
	librosidl_typesupport_c.so => /opt/ros/humble/lib/librosidl_typesupport_c.so (0x00007fc0e7fb4000)
	libbuiltin_interfaces__rosidl_generator_c.so => /opt/ros/humble/lib/libbuiltin_interfaces__rosidl_generator_c.so (0x00007fc0e7faf000)
	librcl_action.so => /opt/ros/humble/lib/librcl_action.so (0x00007fc0e7f9c000)
	libconsole_bridge.so.1.0 => /lib/x86_64-linux-gnu/libconsole_bridge.so.1.0 (0x00007fc0e7f96000)
	libaction_msgs__rosidl_typesupport_cpp.so => /opt/ros/humble/lib/libaction_msgs__rosidl_typesupport_cpp.so (0x00007fc0e7f8e000)
	libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007fc0e7f76000)
	libfmt.so.8 => /lib/x86_64-linux-gnu/libfmt.so.8 (0x00007fc0e7f55000)
	libmd.so.0 => /lib/x86_64-linux-gnu/libmd.so.0 (0x00007fc0e7f48000)

After export project (binary file):

yukky@yukky:~/workspace/godot_ws$ ldd ./sample.x86_64 
	linux-vdso.so.1 (0x00007ffeeaff5000)
	libXcursor.so.1 => /lib/x86_64-linux-gnu/libXcursor.so.1 (0x00007feb9f5af000)
	libXinerama.so.1 => /lib/x86_64-linux-gnu/libXinerama.so.1 (0x00007feb9f5aa000)
	libXext.so.6 => /lib/x86_64-linux-gnu/libXext.so.6 (0x00007feb9f595000)
	libXrandr.so.2 => /lib/x86_64-linux-gnu/libXrandr.so.2 (0x00007feb9f586000)
	libXrender.so.1 => /lib/x86_64-linux-gnu/libXrender.so.1 (0x00007feb9f579000)
	libX11.so.6 => /lib/x86_64-linux-gnu/libX11.so.6 (0x00007feb9f439000)
	libXi.so.6 => /lib/x86_64-linux-gnu/libXi.so.6 (0x00007feb9f425000)
	libGL.so.1 => /lib/x86_64-linux-gnu/libGL.so.1 (0x00007feb9f39e000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007feb9f399000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007feb9f392000)
	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007feb9f2ab000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007feb9f083000)
/lib64/ld-linux-x86-64.so.2 (0x00007feb9f5f1000)
libXfixes.so.3 => /lib/x86_64-linux-gnu/libXfixes.so.3 (0x00007feb9f07a000)
libxcb.so.1 => /lib/x86_64-linux-gnu/libxcb.so.1 (0x00007feb9f050000)
libGLdispatch.so.0 => /lib/x86_64-linux-gnu/libGLdispatch.so.0 (0x00007feb9ef96000)
libGLX.so.0 => /lib/x86_64-linux-gnu/libGLX.so.0 (0x00007feb9ef62000)
libXau.so.6 => /lib/x86_64-linux-gnu/libXau.so.6 (0x00007feb9ef5c000)
libXdmcp.so.6 => /lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007feb9ef54000)
libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007feb9ef3c000)
libmd.so.0 => /lib/x86_64-linux-gnu/libmd.so.0 (0x00007feb9ef2d000)