Page 1 of 1

Undefined symbols preventing creation of libMagick++.dll.a?

Posted: 2008-08-24T11:35:33-07:00
by pixelgeek
I'm trying to compile ImageMagick 6.4.3 (or 6.3.7) with MSYS, and I'm running into a brick wall creating libMagick++.dll.a

using "configure --enable-shared --without-perl"
then "make" gives
...
/bin/sh ./libtool --silent --tag=CXX --mode=link g++ -g -O2 -Wall -W -version-info 1:0:0 -L/C/GTK/lib -Wl,--rpath -Wl,/C/GTK/lib -lfreetype -lz -o Magick++/lib/libMagick++.la -rpath /usr/local/lib Magick++/lib/Blob.lo Magick++/lib/BlobRef.lo Magick++/lib/CoderInfo.lo Magick++/lib/Color.lo Magick++/lib/Drawable.lo Magick++/lib/Exception.lo Magick++/lib/Functions.lo Magick++/lib/Geometry.lo Magick++/lib/Image.lo Magick++/lib/ImageRef.lo Magick++/lib/Montage.lo Magick++/lib/Options.lo Magick++/lib/Pixels.lo Magick++/lib/STL.lo Magick++/lib/Thread.lo Magick++/lib/TypeMetric.lo magick/libMagickCore.la wand/libMagickWand.la
libtool: link: warning: undefined symbols not allowed in i686-pc-mingw32 shared libraries
...

How do I find out what the undefined symbols are, or which file has them?

libMagickCore.dll.a and libMagickWand.dll.a are created successfully. I couldn't see any relevant hits on Google. Am I the only one seeing this under msys?

Thanks
Chris

Re: Undefined symbols preventing creation of libMagick++.dll.a?

Posted: 2008-08-24T11:57:31-07:00
by magick
We have heard that there are problems with C++ exceptions under MinGW with a shared library. Try this instead:
  • configure --disabled-shared --without-perl
    make
If you want to look closer at the shared library problem, remove the --silent libtool option. You may be able to add --verbose (or something similar) to get additional debugging information.

Re: Undefined symbols preventing creation of libMagick++.dll.a?

Posted: 2008-08-26T20:56:39-07:00
by pixelgeek
Unfortunately, I'm trying to compile this for linking into a module in another Open Source program, which requires the library to be shared.
I think I'm out of my depth trying to work around this. I'll defer to others more knowledgeable than myself.

Thanks,
Chris