The compiler must support the following recent C++ standard features:
|
|
|
Solaris 2.6 | SPARC | egcs 1.1.2 |
Solaris 2.6 | SPARC | gcc-2.95.2 |
FreeBSD 2.2.7 | Intel Pentium II | egcs 1.1.2 |
Windows NT 4.0 SP6a | Intel Pentium II | Visual C++ 6.0 Standard Edition |
User's of Magick++ have reported that the following configurations work
with Magick++:
|
|
|
Reported By |
Red Hat Linux 6.0 | i386 | egcs 1.1.2 | Dr. Alexander Zimmermann <Alexander.Zimmermann@fmi.uni-passau.de> |
Red Hat Linux 5.2 | i386 | egcs 1.1.2 (updated from SRPM) | Dr. Alexander Zimmermann <Alexander.Zimmermann@fmi.uni-passau.de> |
Red Hat Linux 5.2 | Alpha | egcs 1.1.2 (updated from SRPM) | Dr. Alexander Zimmermann <Alexander.Zimmermann@fmi.uni-passau.de> |
SGI IRIX | MIPS | IRIX C++ 7.2.1.2m | Albert Chin-A-Young <china@thewrittenword.com> |
SGI IRIX | MIPS | IRIX C++ 7.2.1.3m | Albert Chin-A-Young <china@thewrittenword.com> |
Mac OS 8.1? | PowerPC | CodeWarrior Professional Release 5 | Leonard Rosenthol <leonardr@digapp.com> |
Please let me know if you have successfully built and executed Magick++ using a different configuration so that I can add to the table of verified configurations.
./configure [ --prefix=/prefix ]
make
make install
The configure script uses the compiler/linker flags it obtains from the installed 'Magick-config' script when performing the build. This means that ImageMagick must be installed before Magick++ is configured. The library is currently named similar to 'libMagick++.a' and is installed under prefix/lib while the headers are installed with Magick++.h being installed in prefix/include and the remaining headers in prefix/include/Magick++.
While it is currently possible to select building a shared Magick++ library (using the configure option --enable-shared), the resulting library may not be fully functional (exceptions and static constructors fail to work) because libtool does not yet arrange to invoke initializers when creating C++ shared libraries on most systems (reputed to work under Linux). A known workaround when using GNU C++ is to cd into the 'lib' subdirectory and execute an incantation similar to "c++ -shared -o .libs/libMagick++.so.0.0.0 *.lo -L/usr/local/lib -L/usr/openwin/lib -lMagick -ljbig -ldf -ltiff -lttf -ljpeg -lpng -ldpstk -ldps -lXext -lXt -lX11 -lsocket -lnsl -lbz2 -lz -lm -lc". The exact incantation to use is derived from the one that libtool itself used. Obviously this is not for the faint of heart. If you plan to write many programs with Magick++, this effort may be worth it since it makes the executables *much* (typically 10X) smaller.
To influence the options the configure script chooses, you may specify
environment variables when running the script. For example, the command
CXX=CC CXXFLAGS=-O2 LIBS=-lposix ./configure
specifies additional options to the configure script. The
following table shows the available options.
|
|
|
Name of C++ compiler (e.g. 'CC -Xa') to use compiler 'CC -Xa' |
|
Compiler flags (e.g. '-g -O2') to compile with |
|
Include paths (-I/somedir) to look for header files |
|
Library paths (-L/somedir) to look for libraries. Systems that support the notion of a library run-path may additionally require -R/somedir or '-rpath /somedir' in order to find shared libraries at run time. |
|
Extra libraries (-lsomelib) required to link |
Obtain and extract the VisualMagick source package, making sure to preserver subdirectories.
VisualMagick provides three ready-made build envionments:
VisualMagick (ImageMagick\VisualMagick\VisualMagick.dsw)These build environments are based on similarly named workspaces in the VisualMagick subdirectory.
Builds Debug and Release versions based on DLLs
VisualMagickStatic (ImageMagick\VisualMagick\VisualMagickStatic.dsw)
Builds Debug and Release versions based on static libraries
VisualMagickX11 (ImageMagick\VisualMagick\VisualMagickX11.dsw)
Builds Debug and Release versions based on DLLs, including X11 support
Open the desired workspace in Visual C++, select the menu named "Build", the menu entry "Batch Build", and then click on the "Rebuild All" button in order to build the complete VisualMagick package, including the Magick++ library.
Executables and DLLs are output to the directory ImageMagick\VisualMagick\bin. Linkable libraries are output to the directory ImageMagick\VisualMagick\lib.
The VisualMagick build does not build the Magick++ demos or tests. These are built by seperate workspaces.
Available demos are:
button
program to create a simple rectangular button with an annotation
flip
program to invert and morph images in an existing GIF animation
demo
program to demonstrate the image manipulation primitives
shapes
program to demonstrate use of the drawing primitives
The available tests are:
appendImages
test STL appendImages function
attributes
tests for setting/getting Magick::Image attributes
averageImages
test STL averageImages function
coalesceImages
test STL coalesceImages function
color
test Magick::Color classes
montageImages
test STL montageImages function
morphImages
test STL morphImages function
readWriteBlob
test reading/writing BLOBs
readWriteImages
test STL readImages and writeImages functions