GNU Octave compilation fails with libinterp/.libs/liboctinterp.so: undefined reference to `Magick::*
2
votes
2
answers
1221
views
###Context
My
uname -rv
is 4.4.0-64-generic #85~14.04.1-Ubuntu SMP Mon Feb 20 12:10:54 UTC 2017
--- My compiler is GNU gcc 6.3.0 --- I am compiling GNU Octave from source. I have been trying to compile the Octave versions 4.0.2, 4.2.0 and 4.2.1
I configure the build with the invocation
${srcdir}/configure \
--prefix=/opt/octave/4.2.1 \
--with-java-homedir=/usr/lib/jvm/default-java \
--with-java-libdir=/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server
###Issue#
In all cases the make stage fails with the following error
libinterp/.libs/liboctinterp.so: undefined reference to `Magick::Image::ping(std::__cxx11::basic_string, std::allocator > const&)'
libinterp/.libs/liboctinterp.so: undefined reference to `Magick::Image::attribute(std::__cxx11::basic_string, std::allocator >)'
libinterp/.libs/liboctinterp.so: undefined reference to `Magick::CoderInfo::description[abi:cxx11]() const'
libinterp/.libs/liboctinterp.so: undefined reference to `Magick::Image::comment[abi:cxx11]() const'
libinterp/.libs/liboctinterp.so: undefined reference to `Magick::Image::magick[abi:cxx11]() const'
libinterp/.libs/liboctinterp.so: undefined reference to `Magick::CoderInfo::CoderInfo(std::__cxx11::basic_string, std::allocator > const&)'
collect2: error: ld returned 1 exit status
###Evidence#
In preparation of the manual installation, I had run sudo apt-get build-dep octave
. This relates to version 3.8.1 which is the one currently supported by Ubuntu 14.04. Yet, I thought it could be no harm. (Suggestion from the file INSTALL.OCTAVE in the source directory)
To stay on the safe side, I installed the libraries libmagickcore-dev
, libmagickwand-dev
, libmagick++-dev
from the Ubuntu repository 8:6.7.7.10-6ubuntu3.4). The issue arises with or without them.
Hence, dpkg -l | grep magick
shows
ii imagemagick 8:6.7.7.10-6ubuntu3.4 amd64 image manipulation programs
ii imagemagick-common 8:6.7.7.10-6ubuntu3.4 all image manipulation programs -- infrastructure
ii libgraphicsmagick++1-dev 1.3.18-1ubuntu3 amd64 format-independent image processing - C++ development files
ii libgraphicsmagick++3 1.3.18-1ubuntu3 amd64 format-independent image processing - C++ shared library
ii libgraphicsmagick1-dev 1.3.18-1ubuntu3 amd64 format-independent image processing - C development files
ii libgraphicsmagick3 1.3.18-1ubuntu3 amd64 format-independent image processing - C shared library
ii libmagick++-dev 8:6.7.7.10-6ubuntu3.4 amd64 object-oriented C++ interface to ImageMagick - development files
ii libmagick++5:amd64 8:6.7.7.10-6ubuntu3.4 amd64 object-oriented C++ interface to ImageMagick
ii libmagickcore-dev 8:6.7.7.10-6ubuntu3.4 amd64 low-level image manipulation library - development files
ii libmagickcore5:amd64 8:6.7.7.10-6ubuntu3.4 amd64 low-level image manipulation library
ii libmagickcore5-extra:amd64 8:6.7.7.10-6ubuntu3.4 amd64 low-level image manipulation library - extra codecs
ii libmagickwand-dev 8:6.7.7.10-6ubuntu3.4 amd64 image manipulation library - development files
ii libmagickwand5:amd64 8:6.7.7.10-6ubuntu3.4 amd64 image manipulation library
The configuration stage exits nicely with status 0.
(Note the configure stage is not 100% foolproof: one previous attempt to build failed because I had no gnulib
installed, which had not been caught by configure)
https://stackoverflow.com/questions/39228019/error-while-compiling-octave-with-gcc says that undefined references are a known trait of liboctinterp.so
, as of of Octave 4.0.2. Either this buggy behaviour persists in 4.2.0, or there are hidden requirements that I am missing.
###Question#
What should I do to complete the compilation of Octave successfully?
Asked by XavierStuvw
(1179 rep)
Mar 4, 2017, 04:11 PM
Last activity: Jan 26, 2021, 06:12 PM
Last activity: Jan 26, 2021, 06:12 PM