Installing delegate (libfpx) on Ubuntu 12.04 fails
Posted: 2013-09-19T17:55:51-07:00
I downloaded libfpx-1.3.1-3.tar.gz from the ImageMagick FTP server for delegates. I made a ./configure --prefix=/usr
then a make to compile the source, then a package through checkinstall --install=no . Everything went fine. I later made my own Debian package using the Debian directory /usr/lib/x86_64-linux-gnu instead of /usr/lib from checkinstall. This directory contains the shared library libfpx.so.1.0.31 and a symlink libfpx.so.1 pointing to it as well. I did add a postinst and postrm (for ldconfig) in the DEBIAN dir.
I made a separate libfpx-dev package containing the include files fpxlib.h and fpxlib-config.h in /usr/include/libfpx and 2 symlinks in /usr/include , the static library libfpx.a and libfpx.la with one symlink to the shared library (libfpx.so.1.0.31) libfpx.so in /usr/lib/x86_64-linux-gnu . In addition I made a package config file descriptor libfpx.pc in /usr/lib/x86_64-linux-gnu/pkgconfig .
Everything went fine.
Then I just grabbed the latest version of ImageMagick 6.8.6-9 and went on to perform a configure. In my case it was from a build dir :
I was expecting ImageMagick to recognize the FlashPIX format outright. However the console log showed:
Looking further in config.log I found:
This says that the shared library is found, however it looks like there is some big trouble using this library as everything look as an "undefined reference" to ImageMagick. I've never seen that before.
Do you have any thoughts about was went wrong ? Was this particular libfpx shared library working in previous versions of imageMagick ? My target system is Ubuntu 12.04 Precise amd64. Thank you for your help.
then a make to compile the source, then a package through checkinstall --install=no . Everything went fine. I later made my own Debian package using the Debian directory /usr/lib/x86_64-linux-gnu instead of /usr/lib from checkinstall. This directory contains the shared library libfpx.so.1.0.31 and a symlink libfpx.so.1 pointing to it as well. I did add a postinst and postrm (for ldconfig) in the DEBIAN dir.
I made a separate libfpx-dev package containing the include files fpxlib.h and fpxlib-config.h in /usr/include/libfpx and 2 symlinks in /usr/include , the static library libfpx.a and libfpx.la with one symlink to the shared library (libfpx.so.1.0.31) libfpx.so in /usr/lib/x86_64-linux-gnu . In addition I made a package config file descriptor libfpx.pc in /usr/lib/x86_64-linux-gnu/pkgconfig .
Everything went fine.
Then I just grabbed the latest version of ImageMagick 6.8.6-9 and went on to perform a configure. In my case it was from a build dir :
Code: Select all
$ ../configure CFLAGS="-O3 -g3" CXXFLAGS="-O3 -g3" --with-gslib=yes --with-mupdf=yes --with-rsvg=yes --with-wmf=yes --enable-hdri=yes
Code: Select all
-------------------------------------------------------------
checking for FlashPIX...
checking fpxlib.h usability... yes
checking fpxlib.h presence... yes
checking for fpxlib.h... yes
checking for FPX_OpenImageByFilename in -lfpx... no
checking if FlashPIX package is complete... no -- some components failed test
-------------------------------------------------------------
Code: Select all
configure:28753: result: -------------------------------------------------------------
configure:28755: checking for FlashPIX
configure:28757: result:
configure:28768: checking fpxlib.h usability
configure:28768: g++ -c -O3 -g3 -pthread -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16 conftest.cpp >&5
configure:28768: $? = 0
configure:28768: result: yes
configure:28768: checking fpxlib.h presence
configure:28768: g++ -E -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16 conftest.cpp
configure:28768: $? = 0
configure:28768: result: yes
configure:28768: checking for fpxlib.h
configure:28768: result: yes
configure:28776: checking for FPX_OpenImageByFilename in -lfpx
configure:28801: g++ -o conftest -O3 -g3 -pthread -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16 conftest.cpp -lfpx -lfftw3 -ldjvulibre -lz -lXext -lXt -lSM -lICE -lX11 -lbz2 -lgomp -lm >&5
/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/libfpx.so: undefined reference to `operator delete(void*)'
/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/libfpx.so: undefined reference to `operator new[](unsigned long)'
/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/libfpx.so: undefined reference to `atan2'
/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/libfpx.so: undefined reference to `std::ios_base::Init::~Init()'
/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/libfpx.so: undefined reference to `__cxa_pure_virtual'
/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/libfpx.so: undefined reference to `operator delete[](void*)'
/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/libfpx.so: undefined reference to `__gxx_personality_v0'
/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/libfpx.so: undefined reference to `std::ios_base::Init::Init()'
/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/libfpx.so: undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/libfpx.so: undefined reference to `pow'
/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/libfpx.so: undefined reference to `operator new(unsigned long)'
/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/libfpx.so: undefined reference to `sqrt'
/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/libfpx.so: undefined reference to `sincosf'
/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/libfpx.so: undefined reference to `vtable for __cxxabiv1::__class_type_info'
/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/libfpx.so: undefined reference to `vtable for __cxxabiv1::__vmi_class_type_info'
collect2: ld returned 1 exit status
configure:28801: $? = 1
Do you have any thoughts about was went wrong ? Was this particular libfpx shared library working in previous versions of imageMagick ? My target system is Ubuntu 12.04 Precise amd64. Thank you for your help.