amauryt / cr-cmark-gfm

Crystal C bindings for cmark-gfm to work with Commonmark and Github Flavored Markdown
BSD 2-Clause "Simplified" License
20 stars 4 forks source link

Linking error with ArchLinux #8

Closed vjousse closed 2 years ago

vjousse commented 3 years ago

Hello,

It seems that I can't use cr-cmark-gfm with my ArchLinux installation. I have the following error (it's inside a lucky project):

web          | Compiling...
web          | /bin/ld: /home/vjousse/usr/src/crystal/lucky-blog/lib/cmark/src/cmark/../../ext/libcmark-gfm-extensions.a(core-extensions.c.o): in function `core_extensions_registration':
web          | core-extensions.c:(.text+0x10): undefined reference to `cmark_plugin_register_syntax_extension'
web          | /bin/ld: core-extensions.c:(.text+0x20): undefined reference to `cmark_plugin_register_syntax_extension'
web          | /bin/ld: core-extensions.c:(.text+0x30): undefined reference to `cmark_plugin_register_syntax_extension'
web          | /bin/ld: core-extensions.c:(.text+0x40): undefined reference to `cmark_plugin_register_syntax_extension'
web          | /bin/ld: core-extensions.c:(.text+0x50): undefined reference to `cmark_plugin_register_syntax_extension'
web          | /bin/ld: /home/vjousse/usr/src/crystal/lucky-blog/lib/cmark/src/cmark/../../ext/libcmark-gfm-extensions.a(core-extensions.c.o): in function `cmark_gfm_core_extensions_ensure_registered':
web          | core-extensions.c:(.text+0x7c): undefined reference to `cmark_register_plugin'
web          | /bin/ld: /home/vjousse/usr/src/crystal/lucky-blog/lib/cmark/src/cmark/../../ext/libcmark-gfm-extensions.a(table.c.o): in function `free_table_cell':
web          | table.c:(.text+0x250): undefined reference to `cmark_strbuf_free'
web          | /bin/ld: /home/vjousse/usr/src/crystal/lucky-blog/lib/cmark/src/cmark/../../ext/libcmark-gfm-extensions.a(table.c.o): in function `unescape_pipes':
web          | table.c:(.text+0x29c): undefined reference to `cmark_strbuf_init'
web          | /bin/ld: table.c:(.text+0x2a9): undefined reference to `cmark_strbuf_put'
web          | /bin/ld: table.c:(.text+0x2b3): undefined reference to `cmark_strbuf_putc'
web          | /bin/ld: table.c:(.text+0x2ee): undefined reference to `cmark_strbuf_truncate'
web          | /bin/ld: /home/vjousse/usr/src/crystal/lucky-blog/lib/cmark/src/cmark/../../ext/libcmark-gfm-extensions.a(table.c.o): in function `row_from_string.constprop.0':
web          | table.c:(.text+0x95f): undefined reference to `cmark_llist_free_full'
web          | /bin/ld: table.c:(.text+0x9b7): undefined reference to `cmark_strbuf_trim'
web          | /bin/ld: table.c:(.text+0xa34): undefined reference to `cmark_llist_append'
web          | /bin/ld: table.c:(.text+0xa97): undefined reference to `cmark_llist_free_full'
web          | /bin/ld: /home/vjousse/usr/src/crystal/lucky-blog/lib/cmark/src/cmark/../../ext/libcmark-gfm-extensions.a(table.c.o): in function `matches':
web          | table.c:(.text+0xaca): undefined reference to `cmark_node_get_type'
web          | /bin/ld: table.c:(.text+0xaf1): undefined reference to `cmark_arena_push'
web          | /bin/ld: table.c:(.text+0xaf9): undefined reference to `cmark_parser_get_first_nonspace'
web          | /bin/ld: table.c:(.text+0xb04): undefined reference to `cmark_parser_get_first_nonspace'
web          | /bin/ld: table.c:(.text+0xb3e): undefined reference to `cmark_llist_free_full'
web          | /bin/ld: table.c:(.text+0xb49): undefined reference to `cmark_arena_pop'
web          | /bin/ld: /home/vjousse/usr/src/crystal/lucky-blog/lib/cmark/src/cmark/../../ext/libcmark-gfm-extensions.a(table.c.o): in function `try_opening_table_block':
web          | table.c:(.text+0xb88): undefined reference to `cmark_node_get_type'
web          | /bin/ld: table.c:(.text+0xbc4): undefined reference to `cmark_parser_get_first_nonspace'
web          | /bin/ld: table.c:(.text+0xbf4): undefined reference to `cmark_parser_is_blank'
web          | /bin/ld: table.c:(.text+0xc12): undefined reference to `cmark_parser_add_child'
web          | /bin/ld: table.c:(.text+0xc20): undefined reference to `cmark_node_set_syntax_extension'
web          | /bin/ld: table.c:(.text+0xc43): undefined reference to `cmark_parser_get_first_nonspace'
web          | /bin/ld: table.c:(.text+0xc53): undefined reference to `cmark_parser_get_first_nonspace'
web          | /bin/ld: table.c:(.text+0xcde): undefined reference to `cmark_parser_add_child'
web          | /bin/ld: table.c:(.text+0xd02): undefined reference to `cmark_node_set_string_content'
web          | /bin/ld: table.c:(.text+0xd0f): undefined reference to `cmark_node_set_syntax_extension'
web          | /bin/ld: table.c:(.text+0xd50): undefined reference to `cmark_parser_add_child'
web          | /bin/ld: table.c:(.text+0xd5b): undefined reference to `cmark_node_set_syntax_extension'
web          | /bin/ld: table.c:(.text+0xd7c): undefined reference to `cmark_llist_free_full'
web          | /bin/ld: table.c:(.text+0xd8a): undefined reference to `cmark_parser_get_offset'
web          | /bin/ld: table.c:(.text+0xda2): undefined reference to `cmark_parser_advance_offset'
web          | /bin/ld: table.c:(.text+0xdb4): undefined reference to `cmark_parser_get_first_nonspace'
web          | /bin/ld: table.c:(.text+0xdc4): undefined reference to `cmark_parser_get_first_nonspace'
web          | /bin/ld: table.c:(.text+0xddf): undefined reference to `cmark_arena_push'
web          | /bin/ld: table.c:(.text+0xde7): undefined reference to `cmark_node_get_string_content'
web          | /bin/ld: table.c:(.text+0xe2e): undefined reference to `cmark_llist_free_full'
web          | /bin/ld: table.c:(.text+0xe4d): undefined reference to `cmark_llist_free_full'
web          | /bin/ld: table.c:(.text+0xe58): undefined reference to `cmark_arena_pop'
web          | /bin/ld: table.c:(.text+0xe69): undefined reference to `cmark_arena_pop'
web          | /bin/ld: table.c:(.text+0xe87): undefined reference to `cmark_node_set_type'
web          | /bin/ld: table.c:(.text+0xea6): undefined reference to `cmark_node_set_syntax_extension'
web          | /bin/ld: table.c:(.text+0xf6c): undefined reference to `cmark_llist_free_full'
web          | /bin/ld: table.c:(.text+0xfa8): undefined reference to `cmark_parser_add_child'
web          | /bin/ld: table.c:(.text+0xfb8): undefined reference to `cmark_node_set_syntax_extension'
web          | /bin/ld: table.c:(.text+0x1051): undefined reference to `cmark_parser_add_child'
web          | /bin/ld: table.c:(.text+0x107f): undefined reference to `cmark_node_set_string_content'
web          | /bin/ld: table.c:(.text+0x108c): undefined reference to `cmark_node_set_syntax_extension'
web          | /bin/ld: table.c:(.text+0x10ba): undefined reference to `cmark_parser_get_offset'
web          | /bin/ld: table.c:(.text+0x10ce): undefined reference to `cmark_parser_advance_offset'
web          | /bin/ld: table.c:(.text+0x10e5): undefined reference to `cmark_llist_free_full'
web          | /bin/ld: table.c:(.text+0x1104): undefined reference to `cmark_llist_free_full'
web          | /bin/ld: table.c:(.text+0x1117): undefined reference to `cmark_parser_get_first_nonspace'
web          | /bin/ld: table.c:(.text+0x1127): undefined reference to `cmark_parser_get_first_nonspace'
web          | /bin/ld: table.c:(.text+0x116c): undefined reference to `cmark_node_set_type'
web          | /bin/ld: table.c:(.text+0x1199): undefined reference to `cmark_llist_free_full'
web          | /bin/ld: table.c:(.text+0x11c0): undefined reference to `cmark_llist_free_full'
web          | /bin/ld: table.c:(.text+0x11e0): undefined reference to `cmark_node_new_with_mem'
web          | /bin/ld: table.c:(.text+0x1202): undefined reference to `cmark_strbuf_trim'
web          | /bin/ld: table.c:(.text+0x1215): undefined reference to `cmark_node_set_string_content'
web          | /bin/ld: table.c:(.text+0x1222): undefined reference to `cmark_strbuf_free'
web          | /bin/ld: table.c:(.text+0x123e): undefined reference to `cmark_node_insert_before'
web          | /bin/ld: /home/vjousse/usr/src/crystal/lucky-blog/lib/cmark/src/cmark/../../ext/libcmark-gfm-extensions.a(table.c.o): in function `html_render':
web          | table.c:(.text+0x130d): undefined reference to `cmark_strbuf_puts'
web          | /bin/ld: table.c:(.text+0x1338): undefined reference to `cmark_strbuf_putc'
web          | /bin/ld: table.c:(.text+0x1347): undefined reference to `cmark_strbuf_puts'
web          | /bin/ld: table.c:(.text+0x138d): undefined reference to `cmark_strbuf_putc'
web          | /bin/ld: table.c:(.text+0x139c): undefined reference to `cmark_strbuf_puts'
web          | /bin/ld: table.c:(.text+0x1409): undefined reference to `cmark_strbuf_putc'
web          | /bin/ld: table.c:(.text+0x1418): undefined reference to `cmark_strbuf_puts'
web          | /bin/ld: table.c:(.text+0x1442): undefined reference to `cmark_strbuf_putc'
web          | /bin/ld: table.c:(.text+0x1469): undefined reference to `cmark_strbuf_putc'
web          | /bin/ld: table.c:(.text+0x148f): undefined reference to `cmark_strbuf_puts'
web          | /bin/ld: table.c:(.text+0x1541): undefined reference to `cmark_strbuf_putc'
web          | /bin/ld: table.c:(.text+0x1550): undefined reference to `cmark_strbuf_puts'
web          | /bin/ld: table.c:(.text+0x1563): undefined reference to `cmark_strbuf_putc'
web          | /bin/ld: table.c:(.text+0x15a9): undefined reference to `cmark_strbuf_putc'
web          | /bin/ld: table.c:(.text+0x15bc): undefined reference to `cmark_node_get_end_column'
web          | /bin/ld: table.c:(.text+0x15c7): undefined reference to `cmark_node_get_end_line'
web          | /bin/ld: table.c:(.text+0x15d2): undefined reference to `cmark_node_get_start_column'
web          | /bin/ld: table.c:(.text+0x15e0): undefined reference to `cmark_node_get_start_line'
web          | /bin/ld: table.c:(.text+0x160f): undefined reference to `cmark_strbuf_puts'
web          | /bin/ld: table.c:(.text+0x162b): undefined reference to `cmark_strbuf_puts'
web          | /bin/ld: table.c:(.text+0x164d): undefined reference to `cmark_strbuf_putc'
web          | /bin/ld: table.c:(.text+0x168e): undefined reference to `cmark_strbuf_putc'
web          | /bin/ld: table.c:(.text+0x16a7): undefined reference to `cmark_strbuf_puts'
web          | /bin/ld: table.c:(.text+0x1709): undefined reference to `cmark_node_get_end_column'
web          | /bin/ld: table.c:(.text+0x1714): undefined reference to `cmark_node_get_end_line'
web          | /bin/ld: table.c:(.text+0x171f): undefined reference to `cmark_node_get_start_column'
web          | /bin/ld: table.c:(.text+0x172c): undefined reference to `cmark_node_get_start_line'
web          | /bin/ld: table.c:(.text+0x175b): undefined reference to `cmark_strbuf_puts'
web          | /bin/ld: table.c:(.text+0x1774): undefined reference to `cmark_node_get_end_column'
web          | /bin/ld: table.c:(.text+0x177f): undefined reference to `cmark_node_get_end_line'
web          | /bin/ld: table.c:(.text+0x178a): undefined reference to `cmark_node_get_start_column'
web          | /bin/ld: table.c:(.text+0x1797): undefined reference to `cmark_node_get_start_line'
web          | /bin/ld: table.c:(.text+0x17c6): undefined reference to `cmark_strbuf_puts'
web          | /bin/ld: table.c:(.text+0x17e7): undefined reference to `cmark_strbuf_puts'
web          | /bin/ld: table.c:(.text+0x1811): undefined reference to `cmark_strbuf_putc'
web          | /bin/ld: table.c:(.text+0x183b): undefined reference to `cmark_strbuf_puts'
web          | /bin/ld: table.c:(.text+0x185c): undefined reference to `cmark_strbuf_puts'
web          | /bin/ld: table.c:(.text+0x1874): undefined reference to `cmark_strbuf_puts'
web          | /bin/ld: table.c:(.text+0x1883): undefined reference to `cmark_strbuf_puts'
web          | /bin/ld: table.c:(.text+0x18a7): undefined reference to `cmark_strbuf_puts'
web          | /bin/ld: /home/vjousse/usr/src/crystal/lucky-blog/lib/cmark/src/cmark/../../ext/libcmark-gfm-extensions.a(table.c.o):table.c:(.text+0x18c8): more undefined references to `cmark_strbuf_puts' follow
web          | /bin/ld: /home/vjousse/usr/src/crystal/lucky-blog/lib/cmark/src/cmark/../../ext/libcmark-gfm-extensions.a(table.c.o): in function `create_table_extension':
web          | table.c:(.text+0x191a): undefined reference to `cmark_syntax_extension_new'
web          | /bin/ld: table.c:(.text+0x192c): undefined reference to `cmark_syntax_extension_set_match_block_func'
web          | /bin/ld: table.c:(.text+0x193b): undefined reference to `cmark_syntax_extension_set_open_block_func'
web          | /bin/ld: table.c:(.text+0x194a): undefined reference to `cmark_syntax_extension_set_get_type_string_func'
web          | /bin/ld: table.c:(.text+0x1959): undefined reference to `cmark_syntax_extension_set_can_contain_func'
web          | /bin/ld: table.c:(.text+0x1968): undefined reference to `cmark_syntax_extension_set_contains_inlines_func'
web          | /bin/ld: table.c:(.text+0x1977): undefined reference to `cmark_syntax_extension_set_commonmark_render_func'
web          | /bin/ld: table.c:(.text+0x1986): undefined reference to `cmark_syntax_extension_set_plaintext_render_func'
web          | /bin/ld: table.c:(.text+0x1995): undefined reference to `cmark_syntax_extension_set_latex_render_func'
web          | /bin/ld: table.c:(.text+0x19a4): undefined reference to `cmark_syntax_extension_set_xml_attr_func'
web          | /bin/ld: table.c:(.text+0x19b3): undefined reference to `cmark_syntax_extension_set_man_render_func'
web          | /bin/ld: table.c:(.text+0x19c2): undefined reference to `cmark_syntax_extension_set_html_render_func'
web          | /bin/ld: table.c:(.text+0x19d1): undefined reference to `cmark_syntax_extension_set_opaque_alloc_func'
web          | /bin/ld: table.c:(.text+0x19e0): undefined reference to `cmark_syntax_extension_set_opaque_free_func'
web          | /bin/ld: table.c:(.text+0x19ef): undefined reference to `cmark_syntax_extension_set_commonmark_escape_func'
web          | /bin/ld: table.c:(.text+0x19f6): undefined reference to `cmark_syntax_extension_add_node'
web          | /bin/ld: table.c:(.text+0x1a06): undefined reference to `cmark_syntax_extension_add_node'
web          | /bin/ld: table.c:(.text+0x1a16): undefined reference to `cmark_syntax_extension_add_node'
web          | /bin/ld: /home/vjousse/usr/src/crystal/lucky-blog/lib/cmark/src/cmark/../../ext/libcmark-gfm-extensions.a(table.c.o): in function `html_render':
web          | table.c:(.text+0x13e8): undefined reference to `cmark_strbuf_putc'
web          | /bin/ld: table.c:(.text+0x151e): undefined reference to `cmark_strbuf_puts'
web          | /bin/ld: /home/vjousse/usr/src/crystal/lucky-blog/lib/cmark/src/cmark/../../ext/libcmark-gfm-extensions.a(strikethrough.c.o): in function `insert':
web          | strikethrough.c:(.text+0xe1): undefined reference to `cmark_node_set_type'
web          | /bin/ld: strikethrough.c:(.text+0xf0): undefined reference to `cmark_node_set_syntax_extension'
web          | /bin/ld: strikethrough.c:(.text+0xfa): undefined reference to `cmark_node_next'
web          | /bin/ld: strikethrough.c:(.text+0x119): undefined reference to `cmark_node_next'
web          | /bin/ld: strikethrough.c:(.text+0x129): undefined reference to `cmark_node_append_child'
web          | /bin/ld: strikethrough.c:(.text+0x14c): undefined reference to `cmark_node_free'
web          | /bin/ld: strikethrough.c:(.text+0x162): undefined reference to `cmark_inline_parser_remove_delimiter'
web          | /bin/ld: strikethrough.c:(.text+0x177): undefined reference to `cmark_inline_parser_remove_delimiter'
web          | /bin/ld: /home/vjousse/usr/src/crystal/lucky-blog/lib/cmark/src/cmark/../../ext/libcmark-gfm-extensions.a(strikethrough.c.o): in function `match':
web          | strikethrough.c:(.text+0x283): undefined reference to `cmark_inline_parser_scan_delimiters'
web          | /bin/ld: strikethrough.c:(.text+0x2b1): undefined reference to `cmark_node_new_with_mem'
web          | /bin/ld: strikethrough.c:(.text+0x2bf): undefined reference to `cmark_node_set_literal'
web          | /bin/ld: strikethrough.c:(.text+0x2c7): undefined reference to `cmark_inline_parser_get_line'
web          | /bin/ld: strikethrough.c:(.text+0x2d9): undefined reference to `cmark_inline_parser_get_column'
web          | /bin/ld: strikethrough.c:(.text+0x313): undefined reference to `cmark_inline_parser_push_delimiter'
web          | /bin/ld: /home/vjousse/usr/src/crystal/lucky-blog/lib/cmark/src/cmark/../../ext/libcmark-gfm-extensions.a(strikethrough.c.o): in function `create_strikethrough_extension':
web          | strikethrough.c:(.text+0x38a): undefined reference to `cmark_syntax_extension_new'
web          | /bin/ld: strikethrough.c:(.text+0x39c): undefined reference to `cmark_syntax_extension_set_get_type_string_func'
web          | /bin/ld: strikethrough.c:(.text+0x3ab): undefined reference to `cmark_syntax_extension_set_can_contain_func'
web          | /bin/ld: strikethrough.c:(.text+0x3ba): undefined reference to `cmark_syntax_extension_set_commonmark_render_func'
web          | /bin/ld: strikethrough.c:(.text+0x3c9): undefined reference to `cmark_syntax_extension_set_latex_render_func'
web          | /bin/ld: strikethrough.c:(.text+0x3d8): undefined reference to `cmark_syntax_extension_set_man_render_func'
web          | /bin/ld: strikethrough.c:(.text+0x3e7): undefined reference to `cmark_syntax_extension_set_html_render_func'
web          | /bin/ld: strikethrough.c:(.text+0x3f6): undefined reference to `cmark_syntax_extension_set_plaintext_render_func'
web          | /bin/ld: strikethrough.c:(.text+0x400): undefined reference to `cmark_syntax_extension_add_node'
web          | /bin/ld: strikethrough.c:(.text+0x418): undefined reference to `cmark_syntax_extension_set_match_inline_func'
web          | /bin/ld: strikethrough.c:(.text+0x427): undefined reference to `cmark_syntax_extension_set_inline_from_delim_func'
web          | /bin/ld: strikethrough.c:(.text+0x42e): undefined reference to `cmark_get_default_mem_allocator'
web          | /bin/ld: strikethrough.c:(.text+0x43d): undefined reference to `cmark_llist_append'
web          | /bin/ld: strikethrough.c:(.text+0x448): undefined reference to `cmark_syntax_extension_set_special_inline_chars'
web          | /bin/ld: strikethrough.c:(.text+0x455): undefined reference to `cmark_syntax_extension_set_emphasis'
web          | /bin/ld: /home/vjousse/usr/src/crystal/lucky-blog/lib/cmark/src/cmark/../../ext/libcmark-gfm-extensions.a(strikethrough.c.o): in function `html_render':
web          | strikethrough.c:(.text+0x360): undefined reference to `cmark_strbuf_puts'
web          | /bin/ld: strikethrough.c:(.text+0x370): undefined reference to `cmark_strbuf_puts'
web          | /bin/ld: /home/vjousse/usr/src/crystal/lucky-blog/lib/cmark/src/cmark/../../ext/libcmark-gfm-extensions.a(autolink.c.o): in function `autolink_delim':
web          | autolink.c:(.text+0x100): undefined reference to `cmark_isalpha'
web          | /bin/ld: /home/vjousse/usr/src/crystal/lucky-blog/lib/cmark/src/cmark/../../ext/libcmark-gfm-extensions.a(autolink.c.o): in function `check_domain':
web          | autolink.c:(.text+0x215): undefined reference to `cmark_utf8proc_iterate'
web          | /bin/ld: autolink.c:(.text+0x222): undefined reference to `cmark_utf8proc_is_space'
web          | /bin/ld: autolink.c:(.text+0x245): undefined reference to `cmark_utf8proc_is_punctuation'
web          | /bin/ld: /home/vjousse/usr/src/crystal/lucky-blog/lib/cmark/src/cmark/../../ext/libcmark-gfm-extensions.a(autolink.c.o): in function `match':
web          | autolink.c:(.text+0x2a0): undefined reference to `cmark_inline_parser_in_bracket'
web          | /bin/ld: autolink.c:(.text+0x2b1): undefined reference to `cmark_inline_parser_in_bracket'
web          | /bin/ld: autolink.c:(.text+0x2fc): undefined reference to `cmark_inline_parser_get_chunk'
web          | /bin/ld: autolink.c:(.text+0x30c): undefined reference to `cmark_inline_parser_get_offset'
web          | /bin/ld: autolink.c:(.text+0x322): undefined reference to `cmark_inline_parser_get_column'
web          | /bin/ld: autolink.c:(.text+0x3a0): undefined reference to `cmark_isspace'
web          | /bin/ld: autolink.c:(.text+0x3cb): undefined reference to `cmark_inline_parser_set_offset'
web          | /bin/ld: autolink.c:(.text+0x3d8): undefined reference to `cmark_node_new_with_mem'
web          | /bin/ld: autolink.c:(.text+0x3f5): undefined reference to `cmark_strbuf_init'
web          | /bin/ld: autolink.c:(.text+0x409): undefined reference to `cmark_strbuf_puts'
web          | /bin/ld: autolink.c:(.text+0x420): undefined reference to `cmark_strbuf_put'
web          | /bin/ld: autolink.c:(.text+0x432): undefined reference to `cmark_strbuf_detach'
web          | /bin/ld: autolink.c:(.text+0x452): undefined reference to `cmark_node_new_with_mem'
web          | /bin/ld: autolink.c:(.text+0x47b): undefined reference to `cmark_node_append_child'
web          | /bin/ld: autolink.c:(.text+0x483): undefined reference to `cmark_inline_parser_get_line'
web          | /bin/ld: autolink.c:(.text+0x4aa): undefined reference to `cmark_inline_parser_get_column'
web          | /bin/ld: autolink.c:(.text+0x4c4): undefined reference to `cmark_inline_parser_get_chunk'
web          | /bin/ld: autolink.c:(.text+0x4d4): undefined reference to `cmark_inline_parser_get_offset'
web          | /bin/ld: autolink.c:(.text+0x546): undefined reference to `cmark_isalpha'
web          | /bin/ld: autolink.c:(.text+0x5e9): undefined reference to `cmark_utf8proc_iterate'
web          | /bin/ld: autolink.c:(.text+0x5fa): undefined reference to `cmark_utf8proc_is_space'
web          | /bin/ld: autolink.c:(.text+0x60b): undefined reference to `cmark_utf8proc_is_punctuation'
web          | /bin/ld: autolink.c:(.text+0x66a): undefined reference to `cmark_isspace'
web          | /bin/ld: autolink.c:(.text+0x69c): undefined reference to `cmark_inline_parser_set_offset'
web          | /bin/ld: autolink.c:(.text+0x6aa): undefined reference to `cmark_node_unput'
web          | /bin/ld: autolink.c:(.text+0x6b7): undefined reference to `cmark_node_new_with_mem'
web          | /bin/ld: autolink.c:(.text+0x6e2): undefined reference to `cmark_node_new_with_mem'
web          | /bin/ld: autolink.c:(.text+0x6fc): undefined reference to `cmark_node_append_child'
web          | /bin/ld: autolink.c:(.text+0x745): undefined reference to `cmark_isspace'
web          | /bin/ld: autolink.c:(.text+0x769): undefined reference to `cmark_utf8proc_iterate'
web          | /bin/ld: autolink.c:(.text+0x77a): undefined reference to `cmark_utf8proc_is_space'
web          | /bin/ld: autolink.c:(.text+0x78b): undefined reference to `cmark_utf8proc_is_punctuation'
web          | /bin/ld: autolink.c:(.text+0x7b3): undefined reference to `cmark_utf8proc_iterate'
web          | /bin/ld: autolink.c:(.text+0x7c4): undefined reference to `cmark_utf8proc_is_space'
web          | /bin/ld: autolink.c:(.text+0x7d5): undefined reference to `cmark_utf8proc_is_punctuation'
web          | /bin/ld: /home/vjousse/usr/src/crystal/lucky-blog/lib/cmark/src/cmark/../../ext/libcmark-gfm-extensions.a(autolink.c.o): in function `postprocess_text.constprop.0':
web          | autolink.c:(.text+0x8aa): undefined reference to `cmark_isalnum'
web          | /bin/ld: autolink.c:(.text+0x944): undefined reference to `cmark_isalnum'
web          | /bin/ld: autolink.c:(.text+0xa3e): undefined reference to `cmark_isalnum'
web          | /bin/ld: autolink.c:(.text+0xa59): undefined reference to `cmark_isalpha'
web          | /bin/ld: autolink.c:(.text+0xaea): undefined reference to `cmark_node_new_with_mem'
web          | /bin/ld: autolink.c:(.text+0xb0c): undefined reference to `cmark_strbuf_init'
web          | /bin/ld: autolink.c:(.text+0xb20): undefined reference to `cmark_strbuf_puts'
web          | /bin/ld: autolink.c:(.text+0xb38): undefined reference to `cmark_strbuf_put'
web          | /bin/ld: autolink.c:(.text+0xb4a): undefined reference to `cmark_strbuf_detach'
web          | /bin/ld: autolink.c:(.text+0xb6b): undefined reference to `cmark_node_new_with_mem'
web          | /bin/ld: autolink.c:(.text+0xbf2): undefined reference to `cmark_node_append_child'
web          | /bin/ld: autolink.c:(.text+0xc02): undefined reference to `cmark_node_insert_after'
web          | /bin/ld: autolink.c:(.text+0xc14): undefined reference to `cmark_node_new_with_mem'
web          | /bin/ld: autolink.c:(.text+0xc86): undefined reference to `cmark_node_insert_after'
web          | /bin/ld: /home/vjousse/usr/src/crystal/lucky-blog/lib/cmark/src/cmark/../../ext/libcmark-gfm-extensions.a(autolink.c.o): in function `postprocess':
web          | autolink.c:(.text+0xcd4): undefined reference to `cmark_consolidate_text_nodes'
web          | /bin/ld: autolink.c:(.text+0xcdc): undefined reference to `cmark_iter_new'
web          | /bin/ld: autolink.c:(.text+0xcec): undefined reference to `cmark_iter_next'
web          | /bin/ld: autolink.c:(.text+0xcfb): undefined reference to `cmark_iter_get_node'
web          | /bin/ld: autolink.c:(.text+0xd49): undefined reference to `cmark_iter_free'
web          | /bin/ld: /home/vjousse/usr/src/crystal/lucky-blog/lib/cmark/src/cmark/../../ext/libcmark-gfm-extensions.a(autolink.c.o): in function `create_autolink_extension':
web          | autolink.c:(.text+0xd7f): undefined reference to `cmark_syntax_extension_new'
web          | /bin/ld: autolink.c:(.text+0xd91): undefined reference to `cmark_syntax_extension_set_match_inline_func'
web          | /bin/ld: autolink.c:(.text+0xda0): undefined reference to `cmark_syntax_extension_set_postprocess_func'
web          | /bin/ld: autolink.c:(.text+0xda7): undefined reference to `cmark_get_default_mem_allocator'
web          | /bin/ld: autolink.c:(.text+0xdb9): undefined reference to `cmark_llist_append'
web          | /bin/ld: autolink.c:(.text+0xdc9): undefined reference to `cmark_llist_append'
web          | /bin/ld: autolink.c:(.text+0xdd4): undefined reference to `cmark_syntax_extension_set_special_inline_chars'
web          | /bin/ld: /home/vjousse/usr/src/crystal/lucky-blog/lib/cmark/src/cmark/../../ext/libcmark-gfm-extensions.a(tagfilter.c.o): in function `filter':
web          | tagfilter.c:(.text+0xb7): undefined reference to `cmark_isspace'
web          | /bin/ld: /home/vjousse/usr/src/crystal/lucky-blog/lib/cmark/src/cmark/../../ext/libcmark-gfm-extensions.a(tagfilter.c.o): in function `create_tagfilter_extension':
web          | tagfilter.c:(.text+0x10a): undefined reference to `cmark_syntax_extension_new'
web          | /bin/ld: tagfilter.c:(.text+0x11c): undefined reference to `cmark_syntax_extension_set_html_filter_func'
web          | /bin/ld: /home/vjousse/usr/src/crystal/lucky-blog/lib/cmark/src/cmark/../../ext/libcmark-gfm-extensions.a(tasklist.c.o): in function `commonmark_render':
web          | tasklist.c:(.text+0xb3): undefined reference to `cmark_strbuf_truncate'
web          | /bin/ld: /home/vjousse/usr/src/crystal/lucky-blog/lib/cmark/src/cmark/../../ext/libcmark-gfm-extensions.a(tasklist.c.o): in function `open_tasklist_item':
web          | tasklist.c:(.text+0xeb): undefined reference to `cmark_node_get_type'
web          | /bin/ld: tasklist.c:(.text+0x127): undefined reference to `cmark_node_set_syntax_extension'
web          | /bin/ld: tasklist.c:(.text+0x139): undefined reference to `cmark_parser_advance_offset'
web          | /bin/ld: /home/vjousse/usr/src/crystal/lucky-blog/lib/cmark/src/cmark/../../ext/libcmark-gfm-extensions.a(tasklist.c.o): in function `html_render':
web          | tasklist.c:(.text+0x212): undefined reference to `cmark_strbuf_putc'
web          | /bin/ld: tasklist.c:(.text+0x221): undefined reference to `cmark_strbuf_puts'
web          | /bin/ld: tasklist.c:(.text+0x236): undefined reference to `cmark_strbuf_putc'
web          | /bin/ld: tasklist.c:(.text+0x29c): undefined reference to `cmark_node_get_end_column'
web          | /bin/ld: tasklist.c:(.text+0x2a7): undefined reference to `cmark_node_get_end_line'
web          | /bin/ld: tasklist.c:(.text+0x2b2): undefined reference to `cmark_node_get_start_column'
web          | /bin/ld: tasklist.c:(.text+0x2bc): undefined reference to `cmark_node_get_start_line'
web          | /bin/ld: tasklist.c:(.text+0x2fa): undefined reference to `cmark_strbuf_puts'
web          | /bin/ld: /home/vjousse/usr/src/crystal/lucky-blog/lib/cmark/src/cmark/../../ext/libcmark-gfm-extensions.a(tasklist.c.o): in function `matches':
web          | tasklist.c:(.text+0x346): undefined reference to `cmark_parser_advance_offset'
web          | /bin/ld: tasklist.c:(.text+0x361): undefined reference to `cmark_parser_advance_offset'
web          | /bin/ld: /home/vjousse/usr/src/crystal/lucky-blog/lib/cmark/src/cmark/../../ext/libcmark-gfm-extensions.a(tasklist.c.o): in function `cmark_gfm_extensions_set_tasklist_item_checked':
web          | tasklist.c:(.text+0x388): undefined reference to `cmark_node_get_type_string'
web          | /bin/ld: /home/vjousse/usr/src/crystal/lucky-blog/lib/cmark/src/cmark/../../ext/libcmark-gfm-extensions.a(tasklist.c.o): in function `cmark_gfm_extensions_get_tasklist_item_checked':
web          | tasklist.c:(.text+0x3f1): undefined reference to `cmark_node_get_type_string'
web          | /bin/ld: /home/vjousse/usr/src/crystal/lucky-blog/lib/cmark/src/cmark/../../ext/libcmark-gfm-extensions.a(tasklist.c.o): in function `create_tasklist_extension':
web          | tasklist.c:(.text+0x43a): undefined reference to `cmark_syntax_extension_new'
web          | /bin/ld: tasklist.c:(.text+0x44c): undefined reference to `cmark_syntax_extension_set_match_block_func'
web          | /bin/ld: tasklist.c:(.text+0x45b): undefined reference to `cmark_syntax_extension_set_get_type_string_func'
web          | /bin/ld: tasklist.c:(.text+0x46a): undefined reference to `cmark_syntax_extension_set_open_block_func'
web          | /bin/ld: tasklist.c:(.text+0x479): undefined reference to `cmark_syntax_extension_set_can_contain_func'
web          | /bin/ld: tasklist.c:(.text+0x488): undefined reference to `cmark_syntax_extension_set_commonmark_render_func'
web          | /bin/ld: tasklist.c:(.text+0x497): undefined reference to `cmark_syntax_extension_set_plaintext_render_func'
web          | /bin/ld: tasklist.c:(.text+0x4a6): undefined reference to `cmark_syntax_extension_set_html_render_func'
web          | /bin/ld: tasklist.c:(.text+0x4b5): undefined reference to `cmark_syntax_extension_set_xml_attr_func'
web          | /bin/ld: /home/vjousse/usr/src/crystal/lucky-blog/lib/cmark/src/cmark/../../ext/libcmark-gfm-extensions.a(tasklist.c.o): in function `commonmark_render':
web          | tasklist.c:(.text+0x8b): undefined reference to `cmark_strbuf_puts'
web          | /bin/ld: /home/vjousse/usr/src/crystal/lucky-blog/lib/cmark/src/cmark/../../ext/libcmark-gfm-extensions.a(tasklist.c.o): in function `html_render':
web          | tasklist.c:(.text+0x1e6): undefined reference to `cmark_strbuf_puts'
web          | collect2: error: ld returned 1 exit status
web          | Error: execution of command failed with code: 1: `cc "${@}" -o /home/vjousse/usr/src/crystal/lucky-blog/bin/start_server  -rdynamic -L/home/vjousse/.asdf/installs/crystal/1.0.0/bin/../lib/crystal/lib -lxml2  /home/vjousse/usr/src/crystal/lucky-blog/lib/cmark/src/cmark/../../ext/*.a -lyaml  -lz `command -v pkg-config > /dev/null && pkg-config --libs --silence-errors libssl || printf %s '-lssl -lcrypto'` `command -v pkg-config > /dev/null && pkg-config --libs --silence-errors libcrypto || printf %s '-lcrypto'` -lpcre -lm -lgc -lpthread /home/vjousse/.asdf/installs/crystal/1.0.0/share/crystal/src/ext/libcrystal.a -levent  -lrt -ldl`

Works fine if I use a docker image based on ubuntu.

Versions:

Would be happy to provide further details if needed.

amauryt commented 3 years ago

Sorry for the late response, @vjousse. Unfortunately I am not familiar with ArchLinux. In effect it seems to be an error in the linking of the files. Have you tried to compile from source by itself the underlying cmark-gfm library? It should be the same compilation process, with the exception of the man files generation.

vjousse commented 3 years ago

Yes the library compiles just fine by itself. I decided to use a Docker file as a workaround as I don't have enough knowledge of compilers to dig further on this error. Thanks for your answer :+1:

amauryt commented 3 years ago

It seems that there was a problem related to installation paths on the original commonmark/cmark C library in Linux distributions other than Ubuntu. This issue has already been fixed on v0.30.0, which has been recently released. However, this shard uses Github's GFM fork github/cmark-gfm which is at v0.29.gfm and has the old installation paths. We need to wait for the fix to be merged to cmark-gfm or to consider allowing custom installations paths. In the meantime, a Docker file as proposed by @vjousse in the previous comment might be a viable workaround for some people.