The already defined errors are because zlib is added twice, probably once by lime and once by hxcpp, you’ll have to remove the inclusion in one of them.
Hmm, seems like something in the HXCPP static build, perhaps this was broken with a newer HXCPP, or perhaps the reverse – maybe updating HXCPP could make a difference?
You could check the contents of the generated “BuildMain.xml” file, see what NDLLs are listed to be linked. We can double-check that libstd is on the list
PiratePig builds and runs but without sound and with this output:
Primitive not found : lime_cairo_arc__MULT
Primitive not found : lime_cairo_arc_negative__MULT
Primitive not found : lime_cairo_clip__1
Primitive not found : lime_cairo_clip_preserve__1
Primitive not found : lime_cairo_clip_extents__5
Primitive not found : lime_cairo_close_path__1
Primitive not found : lime_cairo_copy_page__1
Primitive not found : lime_cairo_create__1
Primitive not found : lime_cairo_curve_to__MULT
Primitive not found : lime_cairo_destroy__1
Primitive not found : lime_cairo_fill__1
Primitive not found : lime_cairo_fill_extents__5
Primitive not found : lime_cairo_fill_preserve__1
Primitive not found : lime_cairo_get_antialias__1
Primitive not found : lime_cairo_get_current_point__1
Primitive not found : lime_cairo_get_dash__1
Primitive not found : lime_cairo_get_dash_count__1
Primitive not found : lime_cairo_get_fill_rule__1
Primitive not found : lime_cairo_get_group_target__1
Primitive not found : lime_cairo_get_line_cap__1
Primitive not found : lime_cairo_get_line_join__1
Primitive not found : lime_cairo_get_line_width__1
Primitive not found : lime_cairo_get_matrix__1
Primitive not found : lime_cairo_get_miter_limit__1
Primitive not found : lime_cairo_get_operator__1
Primitive not found : lime_cairo_get_reference_count__1
Primitive not found : lime_cairo_get_source__1
Primitive not found : lime_cairo_get_target__1
Primitive not found : lime_cairo_get_tolerance__1
Primitive not found : lime_cairo_has_current_point__1
Primitive not found : lime_cairo_identity_matrix__1
Primitive not found : lime_cairo_in_clip__3
Primitive not found : lime_cairo_in_fill__3
Primitive not found : lime_cairo_in_stroke__3
Primitive not found : lime_cairo_line_to__3
Primitive not found : lime_cairo_mask__2
Primitive not found : lime_cairo_mask_surface__4
Primitive not found : lime_cairo_move_to__3
Primitive not found : lime_cairo_new_path__1
Primitive not found : lime_cairo_paint__1
Primitive not found : lime_cairo_paint_with_alpha__2
Primitive not found : lime_cairo_pop_group__1
Primitive not found : lime_cairo_pop_group_to_source__1
Primitive not found : lime_cairo_push_group__1
Primitive not found : lime_cairo_push_group_with_content__2
Primitive not found : lime_cairo_rectangle__5
Primitive not found : lime_cairo_reference__1
Primitive not found : lime_cairo_rel_curve_to__MULT
Primitive not found : lime_cairo_rel_line_to__3
Primitive not found : lime_cairo_rel_move_to__3
Primitive not found : lime_cairo_reset_clip__1
Primitive not found : lime_cairo_restore__1
Primitive not found : lime_cairo_save__1
Primitive not found : lime_cairo_set_antialias__2
Primitive not found : lime_cairo_set_dash__2
Primitive not found : lime_cairo_set_fill_rule__2
Primitive not found : lime_cairo_set_line_cap__2
Primitive not found : lime_cairo_set_line_join__2
Primitive not found : lime_cairo_set_line_width__2
Primitive not found : lime_cairo_set_matrix__2
Primitive not found : lime_cairo_set_miter_limit__2
Primitive not found : lime_cairo_set_operator__2
Primitive not found : lime_cairo_set_source__2
Primitive not found : lime_cairo_set_source_rgb__4
Primitive not found : lime_cairo_set_source_rgba__5
Primitive not found : lime_cairo_set_source_surface__4
Primitive not found : lime_cairo_set_tolerance__2
Primitive not found : lime_cairo_show_page__1
Primitive not found : lime_cairo_status__1
Primitive not found : lime_cairo_stroke__1
Primitive not found : lime_cairo_stroke_extents__5
Primitive not found : lime_cairo_stroke_preserve__1
Primitive not found : lime_cairo_transform__2
Primitive not found : lime_cairo_translate__3
Primitive not found : lime_cairo_version__0
Primitive not found : lime_cairo_version_string__0
Primitive not found : lime_cairo_pattern_add_color_stop_rgb__5
Primitive not found : lime_cairo_pattern_add_color_stop_rgba__MULT
Primitive not found : lime_cairo_pattern_create_for_surface__1
Primitive not found : lime_cairo_pattern_create_linear__4
Primitive not found : lime_cairo_pattern_create_radial__MULT
Primitive not found : lime_cairo_pattern_create_rgb__3
Primitive not found : lime_cairo_pattern_create_rgba__4
Primitive not found : lime_cairo_pattern_destroy__1
Primitive not found : lime_cairo_pattern_get_color_stop_count__1
Primitive not found : lime_cairo_pattern_get_extend__1
Primitive not found : lime_cairo_pattern_get_filter__1
Primitive not found : lime_cairo_pattern_get_matrix__1
Primitive not found : lime_cairo_pattern_set_extend__2
Primitive not found : lime_cairo_pattern_set_filter__2
Primitive not found : lime_cairo_pattern_set_matrix__2
Primitive not found : lime_cairo_image_surface_create__3
Primitive not found : lime_cairo_image_surface_create_for_data__5
Primitive not found : lime_cairo_image_surface_get_height__1
Primitive not found : lime_cairo_image_surface_get_width__1
Primitive not found : lime_cairo_surface_destroy__1
Primitive not found : lime_cairo_surface_flush__1
OpenAL is excluded from static builds, due to the LGPL license. Perhaps we could consider an SDL mixer path, or some way to force OpenAL to be included, even if it taints the license of the whole executable
Is it possible to link to OpenAL in fully dynamic way? I mean link to it statically an in runtime check if there is dynamic lib nearby and link to it if there is?
Now I’m trying build lime with mingw and got this:
Error: In file included from ./src/audio/format/OGG.cpp:2:0:
include/system/System.h:98:2: error: #error "Use this header only with Microsoft Visual C++ compilers!"
#error "Use this header only with Microsoft Visual C++ compilers!"
^
If you look at “project/include/system/System.h”, there’s code like this:
#ifndef HX_WINDOWS
#include <stdint.h>
#else
There’s a stdint.h implementation afterward that is specific to MSVC, I’m guessing that this define (and perhaps others) would need to be adapted to work only #ifdef _MSC_VER and not HX_WINDOWS