Skip to content

Adding libheif support breaks build #23

Closed
@ericdevries

Description

@ericdevries

I tried adding HEIF/HEIC support to the build process, the library itself builds fine but when you start building the imagemagick binaries it complains about not having any references to basic c++ libraries. See a sample below.

I am no expert on this matter, but when building this stuff in a different environment it just seems to work, so I wonder if there could be given any pointers on how to make it build correctly with libheif support built in?

Some output from the build process:

/usr/include/c++/7/bits/stl_tree.h:302: undefined reference to `std::_Rb_tree_decrement(std::_Rb_tree_node_base*)'
/var/task/build/cache/lib/libheif.a(libheif_la-heif_image.o): In function `std::_Rb_tree_iterator<std::pair<heif_channel const, heif::HeifPixelImage::ImagePlane> >::operator++()':
/usr/include/c++/7/bits/stl_tree.h:287: undefined reference to `std::_Rb_tree_increment(std::_Rb_tree_node_base*)'
/var/task/build/cache/lib/libheif.a(libheif_la-heif_image.o):(.eh_frame+0x1eb): undefined reference to `__gxx_personality_v0'
collect2: error: ld returned 1 exit status

My additions to the Makefile_Imagemagick file:

## libheic
LIBHEIF_SOURCE=libheif-$(LIBHEIF_VERSION).tar.gz

$(LIBHEIF_SOURCE):
        curl -LO https://github.com/strukturag/libheif/releases/download/v$(LIBHEIF_VERSION)/$(LIBHEIF_SOURCE)

$(CACHE_DIR)/lib/libheif.a: $(LIBHEIF_SOURCE)
        tar xf $<
        cd libheif*
        ./autogen.sh
        # also tried $(CONFIGURE), same result
        ./configure
        make
        make install

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions