Linking static MagickWand fails on linux

Questions and postings pertaining to the usage of ImageMagick regardless of the interface. This includes the command-line utilities, as well as the C and C++ APIs. Usage questions are like "How do I use ImageMagick to create drop shadows?".
Post Reply
phazek
Posts: 1
Joined: 2019-12-02T06:22:14-07:00
Authentication code: 1152

Linking static MagickWand fails on linux

Post by phazek » 2019-12-02T07:30:55-07:00

Hello :)

I'm trying to use ImageMagick for image quantization on MacOS and Linux. I really don't need anything besides quantization, so I've built the static libraries from source at the following commit from github (Release 7.0.9-2):

Code: Select all

bb18472397613788ad4cb797616cddb5b416466c
On MacOS everything seems to work just fine, however on linux I get a linker error when trying to build my project that depends on ImageMagick:

Code: Select all

16:46:21 /var/lib/jenkins/.sugoi/packages2/linux-x64-gcc7/imagemagick-7.0.9/revision-2/pkg/lib/release/libMagickWand-7.Q16HDRI.a(libMagickWand_7_Q16HDRI_la-magick-image.o): In function `MagickAnimateImages':
16:46:21 magick-image.c:(.text+0xf11): undefined reference to `AnimateImages'
cmake --version

Code: Select all

cmake version 3.10.3

CMake suite maintained and supported by Kitware (kitware.com/cmake).
gcc/g++

Code: Select all

g++-7 (Ubuntu 7.3.0-21ubuntu1~16.04) 7.3.0
gcc-7 (Ubuntu 7.3.0-21ubuntu1~16.04) 7.3.0
Configure command:

Code: Select all

CFLAGS=-O3 CXXFLAGS=-O3 ./configure --enable-shared=no --with-xml=no --with-x=no --with-utilities=no --with-bzlib=no --with-fontconfig=no --with-freetype=no --with-openexr=no --with-tiff=no --with-webp=no --with-heic=no --with-lzma=no --with-png=no --with-lcms=no --with-openjp2=no
And output:

Code: Select all

17:17:37 checking build system type... x86_64-pc-linux-gnu
17:17:37 checking host system type... x86_64-pc-linux-gnu
17:17:37 checking target system type... x86_64-pc-linux-gnu
17:17:37 checking for a BSD-compatible install... /usr/bin/install -c
17:17:37 checking whether build environment is sane... yes
17:17:37 checking for a thread-safe mkdir -p... /bin/mkdir -p
17:17:37 checking for gawk... gawk
17:17:37 checking whether make sets $(MAKE)... yes
17:17:37 checking whether make supports nested variables... yes
17:17:37 checking whether UID '1173' is supported by ustar format... yes
17:17:37 checking whether GID '100' is supported by ustar format... yes
17:17:37 checking how to create a ustar tar archive... gnutar
17:17:37 checking whether make supports nested variables... (cached) yes
17:17:37 configuring ImageMagick 7.0.9-2
17:17:37 checking whether build environment is sane... yes
17:17:37 checking whether make supports the include directive... yes (GNU style)
17:17:37 checking for gcc... /usr/bin/gcc-7
17:17:37 checking whether the C compiler works... yes
17:17:37 checking for C compiler default output file name... a.out
17:17:37 checking for suffix of executables... 
17:17:37 checking whether we are cross compiling... no
17:17:37 checking for suffix of object files... o
17:17:37 checking whether we are using the GNU C compiler... yes
17:17:37 checking whether /usr/bin/gcc-7 accepts -g... yes
17:17:37 checking for /usr/bin/gcc-7 option to accept ISO C89... none needed
17:17:37 checking whether /usr/bin/gcc-7 understands -c and -o together... yes
17:17:37 checking dependency style of /usr/bin/gcc-7... gcc3
17:17:37 checking how to run the C preprocessor... /usr/bin/gcc-7 -E
17:17:37 checking for grep that handles long lines and -e... /bin/grep
17:17:37 checking for egrep... /bin/grep -E
17:17:37 checking for ANSI C header files... yes
17:17:37 checking for sys/types.h... yes
17:17:37 checking for sys/stat.h... yes
17:17:37 checking for stdlib.h... yes
17:17:37 checking for string.h... yes
17:17:37 checking for memory.h... yes
17:17:37 checking for strings.h... yes
17:17:37 checking for inttypes.h... yes
17:17:37 checking for stdint.h... yes
17:17:37 checking for unistd.h... yes
17:17:37 checking minix/config.h usability... no
17:17:37 checking minix/config.h presence... no
17:17:37 checking for minix/config.h... no
17:17:37 checking whether it is safe to define __EXTENSIONS__... yes
17:17:37 checking for ar... ar
17:17:37 checking the archiver (ar) interface... ar
17:17:37 checking for gcc... (cached) /usr/bin/gcc-7
17:17:37 checking whether we are using the GNU C compiler... (cached) yes
17:17:37 checking whether /usr/bin/gcc-7 accepts -g... (cached) yes
17:17:37 checking for /usr/bin/gcc-7 option to accept ISO C89... (cached) none needed
17:17:37 checking whether /usr/bin/gcc-7 understands -c and -o together... (cached) yes
17:17:37 checking dependency style of /usr/bin/gcc-7... (cached) gcc3
17:17:37 checking whether we are using the GNU C++ compiler... yes
17:17:37 checking whether /usr/bin/g++-7 accepts -g... yes
17:17:37 checking dependency style of /usr/bin/g++-7... gcc3
17:17:37 checking for /usr/bin/gcc-7 option to accept ISO C99... none needed
17:17:37 checking for /usr/bin/gcc-7 option to accept ISO Standard C... (cached) none needed
17:17:37 checking how to run the C preprocessor... /usr/bin/gcc-7 -E
17:17:37 checking for a sed that does not truncate output... /bin/sed
17:17:37 checking for fgrep... /bin/grep -F
17:17:37 checking how to print strings... printf
17:17:37 checking for ld used by /usr/bin/gcc-7... /usr/bin/ld
17:17:37 checking if the linker (/usr/bin/ld) is GNU ld... yes
17:17:37 checking for /usr/bin/gcc-7 option to accept ISO C99... (cached) none needed
17:17:37 checking CFLAGS for maximum warnings... -Wall
17:17:37 checking whether make sets $(MAKE)... (cached) yes
17:17:37 checking whether ln -s works... yes
17:17:37 checking for a sed that does not truncate output... (cached) /bin/sed
17:17:37 checking for gawk... (cached) gawk
17:17:37 checking if malloc debugging is wanted... no
17:17:37 checking for __attribute__... yes
17:17:37 checking for C compiler vendor... gnu
17:17:37 checking for gcc architecture flag... 
17:17:37 checking for x86 cpuid 0 output... d:756e6547:6c65746e:49656e69
17:17:37 checking for x86 cpuid 1 output... 306e4:4080800:ffba2203:178bfbff
17:17:37 checking whether C compiler accepts -mtune=ivybridge... yes
17:17:37 checking for gcc architecture flag... -mtune=ivybridge
17:17:37 checking for pkg-config... /usr/bin/pkg-config
17:17:37 checking pkg-config is at least version 0.20... yes
17:17:37 checking size of size_t... 8
17:17:37 checking for C compiler vendor... (cached) gnu
17:17:37 checking if LD -Wl,--version-script works... yes
17:17:37 checking for linker lazyload option... none
17:17:37 checking whether /usr/bin/gcc-7 is Clang... no
17:17:37 checking whether pthreads work with -pthread... yes
17:17:37 checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE
17:17:37 checking whether more special flags are required for pthreads... no
17:17:37 checking for PTHREAD_PRIO_INHERIT... yes
17:17:37 checking for /usr/bin/gcc-7 option to support OpenMP... -fopenmp
17:17:37 checking for pthread_join using /usr/bin/gcc-7 -pthread ... yes
17:17:37 checking whether /usr/bin/gcc-7 is Clang... (cached) no
17:17:37 checking for joinable pthread attribute... (cached) PTHREAD_CREATE_JOINABLE
17:17:37 checking whether more special flags are required for pthreads... (cached) no
17:17:37 checking for PTHREAD_PRIO_INHERIT... (cached) yes
17:17:37 checking whether we are using the Microsoft C compiler... no
17:17:37 checking CL/cl.h usability... no
17:17:37 checking CL/cl.h presence... no
17:17:37 checking for CL/cl.h... no
17:17:37 checking OpenCL/cl.h usability... no
17:17:37 checking OpenCL/cl.h presence... no
17:17:37 checking for OpenCL/cl.h... no
17:17:37 checking windows.h usability... no
17:17:37 checking windows.h presence... no
17:17:37 checking for windows.h... no
17:17:37 checking for OpenCL library... (cached) no
17:17:37 checking for special C compiler options needed for large files... no
17:17:37 checking for _FILE_OFFSET_BITS value needed for large files... no
17:17:37 checking for _LARGEFILE_SOURCE value needed for large files... no
17:17:37 checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
17:17:37 checking the name lister (/usr/bin/nm -B) interface... BSD nm
17:17:37 checking the maximum length of command line arguments... 1572864
17:17:37 checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop
17:17:37 checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
17:17:37 checking for /usr/bin/ld option to reload object files... -r
17:17:37 checking for objdump... objdump
17:17:37 checking how to recognize dependent libraries... pass_all
17:17:37 checking for dlltool... no
17:17:37 checking how to associate runtime and link libraries... printf %s\n
17:17:37 checking for archiver @FILE support... @
17:17:37 checking for strip... strip
17:17:37 checking for ranlib... ranlib
17:17:37 checking command to parse /usr/bin/nm -B output from /usr/bin/gcc-7 object... ok
17:17:37 checking for sysroot... no
17:17:37 checking for a working dd... /bin/dd
17:17:37 checking how to truncate binary pipes... /bin/dd bs=4096 count=1
17:17:37 checking for mt... mt
17:17:37 checking if mt is a manifest tool... no
17:17:37 checking for dlfcn.h... yes
17:17:37 checking for objdir... .libs
17:17:37 checking if /usr/bin/gcc-7 supports -fno-rtti -fno-exceptions... no
17:17:37 checking for /usr/bin/gcc-7 option to produce PIC... -fPIC -DPIC
17:17:37 checking if /usr/bin/gcc-7 PIC flag -fPIC -DPIC works... yes
17:17:37 checking if /usr/bin/gcc-7 static flag -static works... yes
17:17:37 checking if /usr/bin/gcc-7 supports -c -o file.o... yes
17:17:37 checking if /usr/bin/gcc-7 supports -c -o file.o... (cached) yes
17:17:37 checking whether the /usr/bin/gcc-7 linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
17:17:37 checking dynamic linker characteristics... GNU/Linux ld.so
17:17:37 checking how to hardcode library paths into programs... immediate
17:17:37 checking for shl_load... no
17:17:37 checking for shl_load in -ldld... no
17:17:37 checking for dlopen... no
17:17:37 checking for dlopen in -ldl... yes
17:17:37 checking whether a program can dlopen itself... yes
17:17:37 checking whether a statically linked program can dlopen itself... no
17:17:37 checking whether stripping libraries is possible... yes
17:17:37 checking if libtool supports shared libraries... yes
17:17:37 checking whether to build shared libraries... no
17:17:37 checking whether to build static libraries... yes
17:17:37 checking how to run the C++ preprocessor... /usr/bin/g++-7 -E
17:17:37 checking for ld used by /usr/bin/g++-7... /usr/bin/ld -m elf_x86_64
17:17:37 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes
17:17:37 checking whether the /usr/bin/g++-7 linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
17:17:37 checking for /usr/bin/g++-7 option to produce PIC... -fPIC -DPIC
17:17:37 checking if /usr/bin/g++-7 PIC flag -fPIC -DPIC works... yes
17:17:37 checking if /usr/bin/g++-7 static flag -static works... yes
17:17:37 checking if /usr/bin/g++-7 supports -c -o file.o... yes
17:17:37 checking if /usr/bin/g++-7 supports -c -o file.o... (cached) yes
17:17:37 checking whether the /usr/bin/g++-7 linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
17:17:37 checking dynamic linker characteristics... (cached) GNU/Linux ld.so
17:17:37 checking how to hardcode library paths into programs... immediate
17:17:37 checking whether to enable maintainer-specific portions of Makefiles... no
17:17:37 checking whether /usr/bin/gcc-7 needs -traditional... no
17:17:37 checking for ANSI C header files... (cached) yes
17:17:37 checking whether to enable assertions... yes
17:17:37 checking for dirent.h that defines DIR... yes
17:17:37 checking for library containing opendir... none required
17:17:37 checking arm/limits.h usability... no
17:17:37 checking arm/limits.h presence... no
17:17:37 checking for arm/limits.h... no
17:17:37 checking arpa/inet.h usability... yes
17:17:37 checking arpa/inet.h presence... yes
17:17:37 checking for arpa/inet.h... yes
17:17:37 checking complex.h usability... yes
17:17:37 checking complex.h presence... yes
17:17:37 checking for complex.h... yes
17:17:37 checking errno.h usability... yes
17:17:37 checking errno.h presence... yes
17:17:37 checking for errno.h... yes
17:17:37 checking fcntl.h usability... yes
17:17:37 checking fcntl.h presence... yes
17:17:37 checking for fcntl.h... yes
17:17:37 checking limits.h usability... yes
17:17:37 checking limits.h presence... yes
17:17:37 checking for limits.h... yes
17:17:37 checking linux/unistd.h usability... yes
17:17:37 checking linux/unistd.h presence... yes
17:17:37 checking for linux/unistd.h... yes
17:17:37 checking locale.h usability... yes
17:17:37 checking locale.h presence... yes
17:17:37 checking for locale.h... yes
17:17:37 checking machine/param.h usability... no
17:17:37 checking machine/param.h presence... no
17:17:37 checking for machine/param.h... no
17:17:37 checking mach-o/dyld.h usability... no
17:17:37 checking mach-o/dyld.h presence... no
17:17:37 checking for mach-o/dyld.h... no
17:17:37 checking netinet/in.h usability... yes
17:17:37 checking netinet/in.h presence... yes
17:17:37 checking for netinet/in.h... yes
17:17:37 checking OS.h usability... no
17:17:37 checking OS.h presence... no
17:17:37 checking for OS.h... no
17:17:37 checking process.h usability... no
17:17:37 checking process.h presence... no
17:17:37 checking for process.h... no
17:17:37 checking sun_prefetch.h usability... no
17:17:37 checking sun_prefetch.h presence... no
17:17:37 checking for sun_prefetch.h... no
17:17:37 checking stdarg.h usability... yes
17:17:37 checking stdarg.h presence... yes
17:17:37 checking for stdarg.h... yes
17:17:37 checking sys/ipc.h usability... yes
17:17:37 checking sys/ipc.h presence... yes
17:17:37 checking for sys/ipc.h... yes
17:17:37 checking sys/mman.h usability... yes
17:17:37 checking sys/mman.h presence... yes
17:17:37 checking for sys/mman.h... yes
17:17:37 checking sys/resource.h usability... yes
17:17:37 checking sys/resource.h presence... yes
17:17:37 checking for sys/resource.h... yes
17:17:37 checking sys/sendfile.h usability... yes
17:17:37 checking sys/sendfile.h presence... yes
17:17:37 checking for sys/sendfile.h... yes
17:17:37 checking sys/socket.h usability... yes
17:17:37 checking sys/socket.h presence... yes
17:17:37 checking for sys/socket.h... yes
17:17:37 checking sys/syslimits.h usability... no
17:17:37 checking sys/syslimits.h presence... no
17:17:37 checking for sys/syslimits.h... no
17:17:37 checking sys/time.h usability... yes
17:17:37 checking sys/time.h presence... yes
17:17:37 checking for sys/time.h... yes
17:17:37 checking sys/timeb.h usability... yes
17:17:37 checking sys/timeb.h presence... yes
17:17:37 checking for sys/timeb.h... yes
17:17:37 checking sys/times.h usability... yes
17:17:37 checking sys/times.h presence... yes
17:17:37 checking for sys/times.h... yes
17:17:37 checking sys/wait.h usability... yes
17:17:37 checking sys/wait.h presence... yes
17:17:37 checking for sys/wait.h... yes
17:17:37 checking utime.h usability... yes
17:17:37 checking utime.h presence... yes
17:17:37 checking for utime.h... yes
17:17:37 checking wchar.h usability... yes
17:17:37 checking wchar.h presence... yes
17:17:37 checking for wchar.h... yes
17:17:37 checking xlocale.h usability... yes
17:17:37 checking xlocale.h presence... yes
17:17:37 checking for xlocale.h... yes
17:17:37 checking for stdbool.h that conforms to C99... yes
17:17:37 checking for _Bool... yes
17:17:37 checking for working volatile... yes
17:17:37 checking for preprocessor stringizing operator... yes
17:17:37 checking whether stat file-mode macros are broken... no
17:17:37 checking whether time.h and sys/time.h may both be included... yes
17:17:37 checking whether struct tm is in sys/time.h or time.h... time.h
17:17:37 checking for struct tm.tm_zone... yes
17:17:37 checking whether #! works in shell scripts... yes
17:17:37 checking whether char is unsigned... no
17:17:37 checking for an ANSI C-conforming const... yes
17:17:37 checking for inline... inline
17:17:37 checking for C/C++ restrict keyword... __restrict
17:17:37 checking for working volatile... (cached) yes
17:17:37 checking whether byte ordering is bigendian... no
17:17:37 checking for int8_t... yes
17:17:37 checking for int16_t... yes
17:17:37 checking for int32_t... yes
17:17:37 checking for int64_t... yes
17:17:37 checking for unsigned long long int... yes
17:17:37 checking for long long int... yes
17:17:37 checking for intmax_t... yes
17:17:37 checking for intptr_t... yes
17:17:37 checking for long double... yes
17:17:37 checking for long double with more range or precision than double... yes
17:17:37 checking for long long int... (cached) yes
17:17:37 checking for mbstate_t... yes
17:17:37 checking for mode_t... yes
17:17:37 checking for off_t... yes
17:17:37 checking for pid_t... yes
17:17:37 checking for size_t... yes
17:17:37 checking for ssize_t... yes
17:17:37 checking for uid_t in sys/types.h... yes
17:17:37 checking for uint8_t... yes
17:17:37 checking for uint16_t... yes
17:17:37 checking for uint32_t... yes
17:17:37 checking for uint64_t... yes
17:17:37 checking for uintmax_t... yes
17:17:37 checking for uintptr_t... yes
17:17:37 checking for unsigned long long int... (cached) yes
17:17:37 checking for locale_t... yes
17:17:37 checking for float_t... yes
17:17:37 checking for double_t... yes
17:17:37 checking size of float_t... 4
17:17:37 checking size of double_t... 8
17:17:37 checking size of float... 4
17:17:37 checking size of double... 8
17:17:37 checking size of long double... 16
17:17:37 checking size of signed short... 2
17:17:37 checking size of unsigned short... 2
17:17:37 checking size of signed int... 4
17:17:37 checking size of unsigned int... 4
17:17:37 checking size of signed long... 8
17:17:37 checking size of unsigned long... 8
17:17:37 checking size of signed long long... 8
17:17:37 checking size of unsigned long long... 8
17:17:37 checking size of off_t... 8
17:17:37 checking size of size_t... (cached) 8
17:17:37 checking size of ssize_t... 8
17:17:37 checking size of unsigned int*... 8
17:17:37 checking for signed 8-bit type... signed char
17:17:37 checking for unsigned 8-bit type... unsigned char
17:17:37 checking for signed 16-bit type... signed short
17:17:37 checking for unsigned 16-bit type... unsigned short
17:17:37 checking for signed 32-bit type... signed int
17:17:37 checking for unsigned 32-bit type... unsigned int
17:17:37 checking for signed 64-bit type... signed long
17:17:37 checking for unsigned 64-bit type... unsigned long
17:17:37 checking for unsigned maximum type... unsigned long
17:17:37 checking for pointer difference type... unsigned long
17:17:37 checking whether our compiler supports __func__... yes
17:17:37 checking whether closedir returns void... no
17:17:37 checking for stdlib.h... (cached) yes
17:17:37 checking for unistd.h... (cached) yes
17:17:37 checking for sys/param.h... yes
17:17:37 checking for getpagesize... yes
17:17:37 checking for working mmap... yes
17:17:37 checking vfork.h usability... no
17:17:37 checking vfork.h presence... no
17:17:37 checking for vfork.h... no
17:17:37 checking for fork... yes
17:17:37 checking for vfork... yes
17:17:37 checking for working fork... yes
17:17:37 checking for working vfork... (cached) yes
17:17:37 checking for working memcmp... yes
17:17:37 checking sys/select.h usability... yes
17:17:37 checking sys/select.h presence... yes
17:17:37 checking for sys/select.h... yes
17:17:37 checking for sys/socket.h... (cached) yes
17:17:37 checking types of arguments for select... int,fd_set *,struct timeval *
17:17:37 checking return type of signal handlers... void
17:17:37 checking for working strtod... yes
17:17:37 checking whether strerror_r is declared... yes
17:17:37 checking for strerror_r... yes
17:17:37 checking whether strerror_r returns char *... yes
17:17:37 checking for vprintf... yes
17:17:37 checking for _doprnt... no
17:17:37 checking for sqrt in -lm... yes
17:17:37 checking for library containing gethostbyname... none required
17:17:37 checking for library containing socket... none required
17:17:37 checking for library containing clock_gettime... none required
17:17:37 checking whether clock_gettime supports CLOCK_REALTIME... yes
17:17:37 checking whether pread is declared... yes
17:17:37 checking whether pwrite is declared... yes
17:17:37 checking whether strlcpy is declared... no
17:17:37 checking whether vsnprintf is declared... yes
17:17:37 checking whether we are using the GNU C++ compiler... (cached) yes
17:17:37 checking whether /usr/bin/g++-7 accepts -g... (cached) yes
17:17:37 checking dependency style of /usr/bin/g++-7... (cached) gcc3
17:17:37 checking whether the compiler recognizes bool as a built-in type... yes
17:17:37 checking whether the compiler implements namespaces... yes
17:17:37 checking if g++ supports namespace std... yes
17:17:37 checking whether the compiler supports ISO C++ standard library... yes
17:17:37 checking for /usr/bin/g++-7 option to support OpenMP... -fopenmp
17:17:37 checking whether C++ compiler is sufficient for Magick++... yes
17:17:37 checking for X11 configure files... 
17:17:37 checking for GOMP_parallel_start in -lgomp... yes
17:17:37 checking for X... disabled
17:17:37 -------------------------------------------------------------
17:17:37 checking for zlib >= 1.0.0... yes
17:17:37 
17:17:37 -------------------------------------------------------------
17:17:37 checking for libzstd >= 1.0.0... no
17:17:37 
17:17:37 -------------------------------------------------------------
17:17:37 checking for fftw3 >= 3.0.0... no
17:17:37 
17:17:37 -------------------------------------------------------------
17:17:37 checking for FLIF... 
17:17:37 checking flif.h usability... no
17:17:37 checking flif.h presence... no
17:17:37 checking for flif.h... no
17:17:37 checking for flif_create_decoder in -lflif... no
17:17:37 checking if FLIF package is complete... no
17:17:37 -------------------------------------------------------------
17:17:37 checking for FlashPIX... 
17:17:37 checking fpxlib.h usability... no
17:17:37 checking fpxlib.h presence... no
17:17:37 checking for fpxlib.h... no
17:17:37 checking for FPX_OpenImageByFilename in -lfpx... no
17:17:37 checking if FlashPIX package is complete... no
17:17:37 -------------------------------------------------------------
17:17:37 checking for ddjvuapi >= 3.5.0... no
17:17:37 
17:17:37 -------------------------------------------------------------
17:17:37 checking for raqm... no
17:17:37 
17:17:37 -------------------------------------------------------------
17:17:37 checking for libgvc >= 2.9.0... no
17:17:37 
17:17:37 -------------------------------------------------------------
17:17:37 checking for JBIG... 
17:17:37 checking jbig.h usability... no
17:17:37 checking jbig.h presence... no
17:17:37 checking for jbig.h... no
17:17:37 checking for jbg_dec_init in -ljbig... no
17:17:37 checking if JBIG package is complete... no
17:17:37 -------------------------------------------------------------
17:17:37 checking for JPEG... 
17:17:37 checking jconfig.h usability... no
17:17:37 checking jconfig.h presence... no
17:17:37 checking for jconfig.h... no
17:17:37 checking jerror.h usability... no
17:17:37 checking jerror.h presence... no
17:17:37 checking for jerror.h... no
17:17:37 checking jmorecfg.h usability... no
17:17:37 checking jmorecfg.h presence... no
17:17:37 checking for jmorecfg.h... no
17:17:37 checking jpeglib.h usability... no
17:17:37 checking jpeglib.h presence... no
17:17:37 checking for jpeglib.h... no
17:17:37 checking for jpeg_read_header in -ljpeg... no
17:17:37 checking for JPEG library is version 6b or later... no
17:17:37 checking if JPEG package is complete... no
17:17:37 -------------------------------------------------------------
17:17:37 checking for brunsli... 
17:17:37 checking brunsli/decode.h usability... no
17:17:37 checking brunsli/decode.h presence... no
17:17:37 checking for brunsli/decode.h... no
17:17:37 checking brunsli/encode.h usability... no
17:17:37 checking brunsli/encode.h presence... no
17:17:37 checking for brunsli/encode.h... no
17:17:37 checking for DecodeBrunsli in -lbrunslidec-c... no
17:17:37 checking for EncodeBrunsli in -lbrunslienc-c... no
17:17:37 checking if brunsli package is complete... no
17:17:37 -------------------------------------------------------------
17:17:37 checking for lqr-1 >= 0.1.0... no
17:17:37 
17:17:37 -------------------------------------------------------------
17:17:37 checking for pangocairo >= 1.28.1... no
17:17:37 
17:17:37 checking for pango >= 1.28.1... no
17:17:37 
17:17:37 -------------------------------------------------------------
17:17:37 checking for libraw_r >= 0.14.8... no
17:17:37 
17:17:37 checking for WMF support ... 
17:17:37 checking for libwmf/ipa.h... no
17:17:37 checking if WMF package is complete ... no
17:17:37 checking for acosh... yes
17:17:37 checking for _aligned_malloc... no
17:17:37 checking for asinh... yes
17:17:37 checking for atanh... yes
17:17:37 checking for atoll... yes
17:17:37 checking for atexit... yes
17:17:37 checking for cabs... yes
17:17:37 checking for carg... yes
17:17:37 checking for cimag... yes
17:17:37 checking for creal... yes
17:17:37 checking for clock... yes
17:17:37 checking for clock_getres... yes
17:17:37 checking for clock_gettime... yes
17:17:37 checking for ctime_r... yes
17:17:37 checking for directio... no
17:17:37 checking for erf... yes
17:17:37 checking for _exit... yes
17:17:37 checking for execvp... yes
17:17:37 checking for fchmod... yes
17:17:37 checking for floor... yes
17:17:37 checking for fork... (cached) yes
17:17:37 checking for ftime... yes
17:17:37 checking for ftruncate... yes
17:17:37 checking for getc_unlocked... yes
17:17:37 checking for getcwd... yes
17:17:37 checking for getpid... yes
17:17:37 checking for getexecname... no
17:17:37 checking for getdtablesize... yes
17:17:37 checking for getpagesize... (cached) yes
17:17:37 checking for getrlimit... yes
17:17:37 checking for getrusage... yes
17:17:37 checking for gettimeofday... yes
17:17:37 checking for gmtime_r... yes
17:17:37 checking for isnan... yes
17:17:37 checking for j0... yes
17:17:37 checking for j1... yes
17:17:37 checking for lltostr... no
17:17:37 checking for localtime_r... yes
17:17:37 checking for lstat... yes
17:17:37 checking for memmove... yes
17:17:37 checking for memset... yes
17:17:37 checking for mkstemp... yes
17:17:37 checking for munmap... yes
17:17:37 checking for nanosleep... yes
17:17:37 checking for newlocale... yes
17:17:37 checking for _NSGetExecutablePath... no
17:17:37 checking for pclose... yes
17:17:37 checking for _pclose... no
17:17:37 checking for poll... yes
17:17:37 checking for popen... yes
17:17:37 checking for _popen... no
17:17:37 checking for posix_fadvise... yes
17:17:37 checking for posix_fallocate... yes
17:17:37 checking for posix_madvise... yes
17:17:37 checking for posix_memalign... yes
17:17:37 checking for posix_spawnp... yes
17:17:37 checking for pow... yes
17:17:37 checking for pread... yes
17:17:37 checking for pwrite... yes
17:17:37 checking for qsort_r... yes
17:17:37 checking for raise... yes
17:17:37 checking for rand_r... yes
17:17:37 checking for readlink... yes
17:17:37 checking for realpath... yes
17:17:37 checking for select... yes
17:17:37 checking for seekdir... yes
17:17:37 checking for sendfile... yes
17:17:37 checking for setlocale... yes
17:17:37 checking for socket... yes
17:17:37 checking for sqrt... yes
17:17:37 checking for setvbuf... yes
17:17:37 checking for stat... yes
17:17:37 checking for strcasestr... yes
17:17:37 checking for strchr... yes
17:17:37 checking for strrchr... yes
17:17:37 checking for strcspn... yes
17:17:37 checking for strdup... yes
17:17:37 checking for strpbrk... yes
17:17:37 checking for strspn... yes
17:17:37 checking for strstr... yes
17:17:37 checking for strtod... (cached) yes
17:17:37 checking for strtod_l... yes
17:17:37 checking for strtol... yes
17:17:37 checking for strtoul... yes
17:17:37 checking for symlink... yes
17:17:37 checking for sysconf... yes
17:17:37 checking for sigemptyset... yes
17:17:37 checking for sigaction... yes
17:17:37 checking for spawnvp... no
17:17:37 checking for strerror... yes
17:17:37 checking for strlcat... no
17:17:37 checking for strlcpy... no
17:17:37 checking for strcasecmp... yes
17:17:37 checking for strncasecmp... yes
17:17:37 checking for telldir... yes
17:17:37 checking for tempnam... yes
17:17:37 checking for times... yes
17:17:37 checking for ulltostr... no
17:17:37 checking for uselocale... yes
17:17:37 checking for usleep... yes
17:17:37 checking for utime... yes
17:17:37 checking for vfprintf... yes
17:17:37 checking for vfprintf_l... no
17:17:37 checking for vsprintf... yes
17:17:37 checking for vsnprintf... yes
17:17:37 checking for vsnprintf_l... no
17:17:37 checking for waitpid... yes
17:17:37 checking for _wfopen... no
17:17:37 checking for _wstat... no
17:17:37 -------------------------------------------------------------
17:17:37 checking for ImageMagick delegate programs... 
17:17:37 checking for bpgdec... bpgdec
17:17:37 checking for bpgenc... bpgenc
17:17:37 checking for blender... blender
17:17:37 checking for xdg-open... /usr/bin/xdg-open
17:17:37 checking for ufraw-batch... ufraw-batch
17:17:37 checking for soffice... soffice
17:17:37 checking for dvips... dvips
17:17:37 checking for magick... /usr/bin/magick
17:17:37 checking for magick... /usr/bin/magick
17:17:37 checking for xterm... xterm
17:17:37 checking for dot... dot
17:17:37 checking for hp2xx... hp2xx
17:17:37 checking for html2ps... html2ps
17:17:37 checking for ilbmtoppm... /usr/bin/ilbmtoppm
17:17:37 checking for ppmtoilbm... /usr/bin/ppmtoilbm
17:17:37 checking for JxrDecApp... JxrDecApp
17:17:37 checking for JxrEncApp... JxrEncApp
17:17:37 checking for lepton... lepton
17:17:37 checking for lp... no
17:17:37 checking for lpr... lpr
17:17:37 checking for gimp... gimp
17:17:37 checking for magick... /usr/bin/magick
17:17:37 checking for avconv... avconv
17:17:37 checking for ffmpeg... (cached) avconv
17:17:37 checking for avconv... avconv
17:17:37 checking for ffmpeg... (cached) avconv
17:17:37 checking for mrsidgeodecode... mrsidgeodecode
17:17:37 checking for mv... /bin/mv
17:17:37 checking for pcl6... pcl6
17:17:37 checking for gsx... no
17:17:37 checking for gsc... no
17:17:37 checking for gs... no
17:17:37 checking for rm... /bin/rm
17:17:37 checking for rsvg-convert... rsvg-convert
17:17:37 checking for inkscape... inkscape
17:17:37 checking for potrace... potrace
17:17:37 checking for uniconvertor... uniconvertor
17:17:37 checking for dwebp... dwebp
17:17:37 checking for cwebp... cwebp
17:17:37 checking for curl... /usr/bin/curl
17:17:37 checking for gxps... gxps
17:17:37 checking for Apple fonts directory... not found!
17:17:37 checking for Dejavu fonts directory... not found!
17:17:37 checking for Ghostscript fonts directory... /usr/share/fonts/type1/gsfonts/
17:17:37 checking for URW-base35 fonts directory... not found!
17:17:37 checking for Windows fonts directory... not found!
17:17:37 checking for gnutar... no
17:17:37 checking for gtar... no
17:17:37 checking for tar... tar
17:17:37 checking for perl... perl
17:17:37 checking for rpmbuild... no
17:17:37 checking for rpm... no
17:17:37 checking for 7za... 7za
17:17:37 checking for zip... zip
17:17:37 -------------------------------------------------------------
17:17:37 Update ImageMagick configuration
17:17:37 checking that generated files are newer than configure... done
17:17:37 checking that generated files are newer than configure... done
17:17:37 configure: creating ./config.status
17:17:37 config.status: creating common.shi
17:17:37 config.status: creating config/configure.xml
17:17:37 config.status: creating config/delegates.xml
17:17:37 config.status: creating config/ImageMagick.rdf
17:17:37 config.status: creating config/MagickCore.dox
17:17:37 config.status: creating config/MagickWand.dox
17:17:37 config.status: creating config/Magick++.dox
17:17:37 config.status: creating config/type-apple.xml
17:17:37 config.status: creating config/type-dejavu.xml
17:17:37 config.status: creating config/type-ghostscript.xml
17:17:37 config.status: creating config/type-urw-base35.xml
17:17:37 config.status: creating config/type-windows.xml
17:17:37 config.status: creating config/type.xml
17:17:37 config.status: creating ImageMagick.spec
17:17:37 config.status: creating Magick++/bin/Magick++-config
17:17:37 config.status: creating MagickCore/ImageMagick.pc
17:17:37 config.status: creating Magick++/lib/Magick++.pc
17:17:37 config.status: creating MagickCore/MagickCore-config
17:17:37 config.status: creating MagickCore/MagickCore.pc
17:17:37 config.status: creating MagickCore/version.h
17:17:37 config.status: creating Makefile
17:17:37 config.status: creating magick.sh
17:17:37 config.status: creating PerlMagick/check.sh
17:17:37 config.status: creating PerlMagick/default/Magick.pm
17:17:37 config.status: creating PerlMagick/Makefile.PL
17:17:37 config.status: creating PerlMagick/default/Makefile.PL
17:17:37 config.status: creating PerlMagick/quantum/Makefile.PL
17:17:37 config.status: creating PerlMagick/quantum/quantum.pm
17:17:37 config.status: creating PerlMagick/quantum/quantum.xs
17:17:37 config.status: creating PerlMagick/quantum/typemap
17:17:37 config.status: creating utilities/animate.1
17:17:37 config.status: creating utilities/compare.1
17:17:37 config.status: creating utilities/composite.1
17:17:37 config.status: creating utilities/conjure.1
17:17:37 config.status: creating utilities/convert.1
17:17:37 config.status: creating utilities/display.1
17:17:37 config.status: creating utilities/identify.1
17:17:37 config.status: creating utilities/ImageMagick.1
17:17:37 config.status: creating utilities/import.1
17:17:37 config.status: creating utilities/magick.1
17:17:37 config.status: creating utilities/magick-script.1
17:17:37 config.status: creating utilities/mogrify.1
17:17:37 config.status: creating utilities/montage.1
17:17:37 config.status: creating utilities/stream.1
17:17:37 config.status: creating MagickWand/MagickWand-config
17:17:37 config.status: creating MagickWand/MagickWand.pc
17:17:37 config.status: creating config/config.h
17:17:37 config.status: executing MagickCore/magick-baseconfig.h commands
17:17:37 config.status: creating MagickCore/magick-baseconfig.h - prefix MAGICKCORE for config/config.h defines
17:17:37 config.status: executing depfiles commands
17:17:37 config.status: executing libtool commands
17:17:37 config.status: executing default commands
17:17:37 config.status: executing magick.sh.in commands
17:17:37 config.status: executing MagickCore-config.in commands
17:17:37 config.status: executing MagickWand-config.in commands
17:17:37 config.status: executing Magick++-config.in commands
17:17:37 config.status: executing PerlMagick/check.sh.in commands
17:17:37 configure:
17:17:37 ==============================================================================
17:17:37 ImageMagick 7.0.9-2 is configured as follows. Please verify that this
17:17:37 configuration matches your expectations.
17:17:37 
17:17:37 Host system type: x86_64-pc-linux-gnu
17:17:37 Build system type: x86_64-pc-linux-gnu
17:17:37 
17:17:37                Option                        Value
17:17:37 ------------------------------------------------------------------------------
17:17:37 Shared libraries  --enable-shared=no		no
17:17:37 Static libraries  --enable-static=yes		yes
17:17:37 Build utilities   --with-utilities=yes		yes
17:17:37 Module support    --with-modules=no		no
17:17:37 GNU ld            --with-gnu-ld=yes		yes
17:17:37 Quantum depth     --with-quantum-depth=16	16
17:17:37 High Dynamic Range Imagery
17:17:37                   --enable-hdri=yes		yes
17:17:37 
17:17:37 Install documentation:				yes
17:17:37 
17:17:37 Memory allocation library:
17:17:37   JEMalloc          --with-jemalloc=no		no
17:17:37   TCMalloc          --with-tcmalloc=no		no
17:17:37   UMem              --with-umem=no		no
17:17:37 
17:17:37 Delegate library configuration:
17:17:37   BZLIB             --with-bzlib=no		no
17:17:37   Autotrace         --with-autotrace=no		no
17:17:37   DJVU              --with-djvu=yes		no
17:17:37   DPS               --with-dps=yes		no
17:17:37   FFTW              --with-fftw=yes		no
17:17:37   FLIF              --with-flif=yes		no
17:17:37   FlashPIX          --with-fpx=yes		no
17:17:37   FontConfig        --with-fontconfig=no	no
17:17:37   FreeType          --with-freetype=no		no
17:17:37   Ghostscript lib   --with-gslib=no		no
17:17:37   Graphviz          --with-gvc=yes		no
17:17:37   HEIC              --with-heic=no             no
17:17:37   JBIG              --with-jbig=yes		no
17:17:37   JPEG v1           --with-jpeg=yes		no
17:17:37   JPEG XL           --with-jxl=yes    no
17:17:37   LCMS              --with-lcms=no		no
17:17:37   LQR               --with-lqr=yes		no
17:17:37   LTDL              --with-ltdl=yes		no
17:17:37   LZMA              --with-lzma=no		
17:17:37   Magick++          --with-magick-plus-plus=yes	yes
17:17:37   OpenEXR           --with-openexr=no		no
17:17:37   OpenJP2           --with-openjp2=no		no
17:17:37   PANGO             --with-pango=yes		no
17:17:37   PERL              --with-perl=no		no
17:17:37   PNG               --with-png=no		no
17:17:37   RAQM              --with-raqm=yes		no
17:17:37   RAW               --with-raw=yes 	   	no
17:17:37   RSVG              --with-rsvg=no		no
17:17:37   TIFF              --with-tiff=no		no
17:17:37   WEBP              --with-webp=no		no
17:17:37   WMF               --with-wmf=yes		no
17:17:37   X11               --with-x=no			no
17:17:37   XML               --with-xml=no		no
17:17:37   ZLIB              --with-zlib=yes		yes
17:17:37   ZSTD              --with-zstd=yes		no
17:17:37 
17:17:37 Delegate program configuration:
17:17:37   GhostPCL          None			pcl6 (unknown)
17:17:37   GhostXPS          None			gxps (unknown)
17:17:37   Ghostscript       None			gs (unknown)
17:17:37 
17:17:37 Font configuration:
17:17:37   Apple fonts       --with-apple-font-dir=default	
17:17:37   Dejavu fonts      --with-dejavu-font-dir=default	none
17:17:37   Ghostscript fonts --with-gs-font-dir=default		/usr/share/fonts/type1/gsfonts/
17:17:37   URW-base35 fonts  --with-urw-base35-font-dir=default	none
17:17:37   Windows fonts     --with-windows-font-dir=default	none
17:17:37 
17:17:37 X11 configuration:
17:17:37   X_CFLAGS        = 
17:17:37   X_PRE_LIBS      = 
17:17:37   X_LIBS          = 
17:17:37   X_EXTRA_LIBS    = 
17:17:37 
17:17:37 Options used to compile and link:
17:17:37   PREFIX          = /usr/local
17:17:37   EXEC-PREFIX     = /usr/local
17:17:37   VERSION         = 7.0.9
17:17:37   CC              = /usr/bin/gcc-7
17:17:37   CFLAGS          =   -fopenmp -O3 -Wall -mtune=ivybridge -fexceptions -pthread -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16
17:17:37   CPPFLAGS        =   -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16
17:17:37   PCFLAGS         = 
17:17:37   DEFS            = -DHAVE_CONFIG_H
17:17:37   LDFLAGS         = 
17:17:37   LIBS            =                                    -lz     -lm     
17:17:37   CXX             = /usr/bin/g++-7
17:17:37   CXXFLAGS        = -O3 -pthread
17:17:37   FEATURES        = DPC HDRI Cipher OpenMP
17:17:37   DELEGATES       = mpeg zlib
17:17:37 ==============================================================================
The relevant code where I'm using ImageMagick:

Code: Select all

...
	Magick::Image im{(size_t) width, (size_t) height, "RGBA", Magick::StorageType::CharPixel, (void*) src->pixels};
	// Quantize to 254 colors so that transparent and reference color can fit in 1 byte
	im.quantizeColors(254);
	im.quantizeDither(dither);
	im.quantize();

	auto* pixels = MagickCore::GetAuthenticPixels(im.image(), 0, 0, width, height, nullptr);
...
I link Magick++-7.Q16HDRI.a, MagickCore-7.Q16HDRI.a, and MagickWand-7.Q16HDRI.a to my executable (there's too much proprietary cmake magic in the CMakeLists.txt to make sense, that's why I haven't pasted that).

I've managed to find out, that MagickAnimateImages(...) uses X11 to display animated images. However I've deliberately configured IM to build without X11 support, so I understand why that function couldn't be found, but I don't get why is it used though.

Sorry if all this mess doesn't make sense, I'm open to suggestions/provide additional info.
===============================================
Edit:
I've created a minimal example, linking the aforementioned compiled static libs.
cmake:

Code: Select all

cmake_minimum_required(VERSION 3.1)
project (example)

find_package(OpenMP)
find_package(ZLIB)
link_directories(<path to imagemagick static libs>)
add_executable(link_example main.cpp)
include_directories(<path to imagemagick includes>)
target_link_libraries(link_example Magick++-7.Q16HDRI MagickCore-7.Q16HDRI MagickWand-7.Q16HDRI OpenMP::OpenMP_CXX ${ZLIB_LIBRARIES})
Include folder contains Magick++.h, Magick++ directory containing the header files from <IM git root>/Magick++/lib/, MagickCore directory containing header files from <IM git root>/MagickCore (including version.h & magick-baseconfig.h), and MagickWand directory containing header files from <IM git root>/MagickWand.
Lib folder contains Magick++-7.Q16HDRI.a MagickCore-7.Q16HDRI.a and MagickWand-7.Q16HDRI.a respectively.

main.cpp

Code: Select all

#include <Magick++.h>

int main(int argc, char** argv) {
    Magick::InitializeMagick(*argv);
    Magick::Image im{(size_t)2, (size_t)2, "RGB", Magick::StorageType::CharPixel, (void*)"AAAAAAAAAAAA"};
    return 0;
}

Post Reply