2015-12-28 9 views
5

Ich muss es aus Quellen kompilieren. Ich folgte Schritt für Schritt instruction, um es mit JPEG-und PNG-Unterstützung zu bauen, aber ImageMagick nicht PNG Delegierten Liste enthalten jedoch jpeg wurde aufgenommen. Was stimmt nicht mit PNG?Kompilieren ImageMagick aus Quelle mit PNG-Unterstützung auf OSX

Options used to compile and link: 
PREFIX   = /opt/im 
EXEC-PREFIX  = /opt/im 
VERSION   = 6.9.2 
CC    = gcc 
CFLAGS   = -g -O2 -Wall -mtune=haswell -fexceptions -D_FORTIFY_SOURCE=0 -D_THREAD_SAFE -pthread -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 
CPPFLAGS  = -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 -I/tmp/IM/ImageMagick-6.9.2-10/jpeg -I/tmp/IM/ImageMagick-6.9.2-10/magick -I/tmp/IM/ImageMagick-6.9.2-10/png -I/tmp/IM/ImageMagick-6.9.2-10/wand 
PCFLAGS   = 
DEFS   = -DHAVE_CONFIG_H 
LDFLAGS   = -L/tmp/IM/ImageMagick-6.9.2-10/jpeg/.libs -L/tmp/IM/ImageMagick-6.9.2-10/jpeg -L/tmp/IM/ImageMagick-6.9.2-10/magick -L/tmp/IM/ImageMagick-6.9.2-10/png/.libs -L/tmp/IM/ImageMagick-6.9.2-10/png -L/tmp/IM/ImageMagick-6.9.2-10/wand 
LIBS   = 
CXX    = g++ 
CXXFLAGS  = -g -O2 -D_THREAD_SAFE -pthread 
FEATURES  = DPC Cipher 
DELEGATES  = mpeg jpeg 
+1

Warum einfach für sich selbst machen das Leben nicht, und installieren Sie mit 'homebrew'? http://StackOverflow.com/A/32153599/2836621 –

+1

das Ziel ist kompilieren IM aus Quellen ohne Homebrew oder MakPorts – Lazy

Antwort

8

Hier ist, wie ich ImageMagick von der Quelle auf OSX installieren würde.

1. Installieren Sie Xcode

Zuerst Sie die Apple-Compiler und Entwicklungstools, was auch immer Sie tun, gehen zu müssen. Also, die AppStore beginnen, die wie folgt aussieht:

enter image description here

und downloaden Xcode kostenlos - es sieht wie folgt aus:

enter image description here

2. Installieren Sie Befehlszeilen-Tools

Sobald Sie Xcode installiert haben, müssen Sie die Kommandozeilen-Tools (z. B. Clan g, Klirren ++, machen) wie folgt aus:

xcode-select --install 

3. Ihre Methode wählen - homebrew oder ein Life of Agony

Nun müssen Sie entscheiden, wie Sie vorgehen werden. Die einfachste Option, nach Meilen und Meilen und Meilen, ist homebrew zu verwenden. Die andere Methode ist selbstbeschreibend.

3a. Homebrew Methode

Gehen Sie zu der homebrew website und kopieren und fügen Sie die Einzeiler dort in Ihr Terminal - ich werde es hier nicht zeigen, weil es sich ändern kann und ich möchte, dass Sie und zukünftige Leser den aktuellen Befehl verwenden. Sobald homebrew installiert ist, tun Sie gerade dies Ihr ImageMagick Optionen zur Auswahl:

brew options imagemagick 

--with-fftw 
    Compile with FFTW support 
--with-fontconfig 
    Build with fontconfig support 
--with-ghostscript 
    Build with ghostscript support 
--with-hdri 
    Compile with HDRI support 
--with-jp2 
    Compile with Jpeg2000 support 
--with-liblqr 
    Build with liblqr support 
--with-librsvg 
    Build with librsvg support 
--with-libwmf 
    Build with libwmf support 
--with-little-cms 
    Build with little-cms support 
--with-little-cms2 
    Build with little-cms2 support 
--with-openexr 
    Build with openexr support 
--with-openmp 
    Compile with OpenMP support 
--with-pango 
    Build with pango support 
--with-perl 
    enable build/install of PerlMagick 
--with-quantum-depth-16 
    Compile with a quantum depth of 16 bit 
--with-quantum-depth-32 
    Compile with a quantum depth of 32 bit 
--with-quantum-depth-8 
    Compile with a quantum depth of 8 bit 
--with-webp 
    Build with webp support 
--with-x11 
    Build with x11 support 
--without-freetype 
    Build without freetype support 
--without-jpeg 
    Build without jpeg support 
--without-libpng 
    Build without libpng support 
--without-libtiff 
    Build without libtiff support 
--without-magick-plus-plus 
    disable build/install of Magick++ 
--without-opencl 
    Disable OpenCL 

und dann Optionen ausgewählt haben, installieren Sie mit

brew install imagemagick --with-perl --with-librsvg 

oder was auch immer Sie wollen. Dann bist du fertig und du brauchst die folgende Folter nicht zu lesen!

Später, Upgrades sind einfach:

brew update && brew upgrade --all 

Problemlösung einfach:

brew doctor 

Deinstallation ist einfach:

brew rm imagemagick 

3b.Life of Agony ™ Methode

Ok, ich sehe dich leider entschied sich für ein Life of Agony ™, soll es so sein. Ich hoffe, Sie wissen tar, bash, Umgebungsvariablen, gzip, make, curl. Jetzt wäre eine gute Zeit, wieder zu denken und homebrew schließlich zu verwenden.

Sicher möchten Sie fortfahren? Okay, die allgemeine Idee ist, zu entscheiden, welche Funktionen Sie benötigen, installieren Sie zuerst die Funktionen und dann ImageMagick.

4.

Richten Sie zwei Verzeichnisse und 2-Umgebung Vars in $ HOME/.profile ein Build-Bereich und Umgebung einrichten. Diese werden die build Bereich, in dem Sie die Software öffnen und die sw Bereich, in dem Sie Ihre lokale Software installieren zu:

export MSBUILD=$HOME/build 
export MSSW=$HOME/sw 

Jetzt Ihr Profil in der aktuellen Sitzung Quelle mit

. $HOME/.profile 

oder einfach ausloggen und Melden Sie sich erneut an, damit die oben genannten Variablen wirksam werden.

Als Nächstes erstellen Sie die beiden Verzeichnisse:

mkdir "$MSBUILD" "$MSSW" 

5. Eigenschaften Betrachten Sie brauchen

Betrachten wir nun, welche Funktionen Sie brauchen:

5,1 Eigenschaft = PNG Unterstützung

Wenn Sie PNG-Unterstützung benötigen, benötigen Sie zlib zuerst. Navigieren Sie in Ihrem Webbrowser zu zlib website und suchen Sie den Namen der neuesten Version. Dann im Terminal:

cd $MSBUILD 
curl -O -J -L http://sourceforge.net/projects/libpng/files/zlib/1.2.8/zlib-1.2.8.tar.xz/download 

, die Sie bekommt diese zlib-1.2.8.tar.xz (oder ähnliches), die Sie entpacken und installieren mit:

tar xvfJ zlib*.tar.xz   # Unzip and untar what you downloaded 
cd zlib*[0-9]     # Change directory to wherever it unpacked to 
./configure --prefix="$MSSW" # Configure with the necessary prefix 
make 
make install 

Jetzt wollen Sie libpng, die Sie tun mit:

curl -O -J -L http://sourceforge.net/projects/libpng/files/latest/download?source=files 

was bekommt man das (oder ähnlich):

libpng-1.6.17.tar.xz 

, die Sie mit diesem Befehl installieren:

tar xvfJ libpng*xz    # Unpack and untar whatever you downloaded 
cd libpng*[0-9]    # Change directory to wherever it unpacked to 
./configure --prefix="$MSSW" # Configure with the necessary prefix 
make 
make install 

5,2 Eigenschaft = TIFF Unterstützung

Wenn Sie TIFF-Unterstützung benötigen, verwenden Sie diese:

cd $MSBUILD 
curl -O -J -L ftp://ftp.remotesensing.org/libtiff/tiff-4.0.3.tar.gz 
tar xvfz tiff*tar.gz    # Unzip and untar what you downloaded 
cd tiff*[0-9]     # Change directory to wherever it unpacked to 
./configure --prefix="$MSSW"  # Configure with the necessary prefix 
make 
make install 

5.3 Eigenschaft = webp Unterstützung

Wenn Sie webp Unterstützung benötigen, verwenden Sie diese:

cd $MSBUILD 
curl -O -J -L http://downloads.webmproject.org/releases/webp/libwebp-0.4.3.tar.gz 
tar xvfz libwebp*tar.gz   # Unzip and untar what you downloaded 
cd libwebp*[0-9]     # Change directory to wherever it unpacked to 
./configure --prefix="$MSSW"  # Configure with the necessary prefix 
make 
make install 

5,4 Eigenschaft = JPEG Unterstützung

Wenn Sie JPEG-Unterstützung benötigen, verwenden Sie diese:

cd $MSBUILD 
curl -O -J -L http://www.ijg.org/files/jpegsrc.v9a.tar.gz 
tar xvfz jpeg*tar.gz     # Unzip and untar what you downloaded 
cd jpeg-9a       # Change directory to wherever it unpacked to 
./configure --prefix="$MSSW"   # Configure with the necessary prefix 
make 
make install 

5.5 Funktion - X11 oder X Windows

Da OSX nicht mehr mit einem X11-Server ausgeliefert wird, müssen Sie selbst einen installieren, wenn Sie X11 verwenden möchten. Nun, wenn Sie meinen Rat genommen hatte und verwendet homebrew, würden Sie in der Lage zu tun:

brew cask install xquartz 

und Sie würden beendet werden. Aber Sie haben die Option Life of Agony ™ gewählt, so dass Sie herausfinden müssen, wie Sie XQuartz selbst installieren.

6. ImageMagick selbst

Wenn Sie alle Funktionen, die Sie installieren möchten, können Sie ImageMagick installieren. Bestellen Sie Ihr Exemplar here, dann wie folgt installieren:

cd $MSBUILD 
gunzip ImageMagick.tar.gz 
tar -xvf ImageMagick.tar 
cd ImageMagick-6.9.1-2  # or wherever the tar-file extracted to 

Jetzt ist Ihre Optionen wählen. Woher kennen Sie die verfügbaren Optionen? Sie führen:

./configure --help 

und Sie werden eine gewaltige Reihe von Optionen wie diese:

`configure' configures ImageMagick 6.9.2-10 to adapt to many kinds of systems. 

Usage: ./configure [OPTION]... [VAR=VALUE]... 

To assign environment variables (e.g., CC, CFLAGS...), specify them as 
VAR=VALUE. See below for descriptions of some of the useful variables. 

Defaults for the options are specified in brackets. 

Configuration: 
    -h, --help    display this help and exit 
     --help=short  display options specific to this package 
     --help=recursive display the short help of all the included packages 
    -V, --version   display version information and exit 
    -q, --quiet, --silent do not print `checking ...' messages 
     --cache-file=FILE cache test results in FILE [disabled] 
    -C, --config-cache  alias for `--cache-file=config.cache' 
    -n, --no-create   do not create output files 
     --srcdir=DIR  find the sources in DIR [configure dir or `..'] 

Installation directories: 
    --prefix=PREFIX   install architecture-independent files in PREFIX 
          [/usr/local] 
    --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX 
          [PREFIX] 

By default, `make install' will install all the files in 
`/usr/local/bin', `/usr/local/lib' etc. You can specify 
an installation prefix other than `/usr/local' using `--prefix', 
for instance `--prefix=$HOME'. 

For better control, use the options below. 

Fine tuning of the installation directories: 
    --bindir=DIR   user executables [EPREFIX/bin] 
    --sbindir=DIR   system admin executables [EPREFIX/sbin] 
    --libexecdir=DIR  program executables [EPREFIX/libexec] 
    --sysconfdir=DIR  read-only single-machine data [PREFIX/etc] 
    --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] 
    --localstatedir=DIR  modifiable single-machine data [PREFIX/var] 
    --libdir=DIR   object code libraries [EPREFIX/lib] 
    --includedir=DIR  C header files [PREFIX/include] 
    --oldincludedir=DIR  C header files for non-gcc [/usr/include] 
    --datarootdir=DIR  read-only arch.-independent data root [PREFIX/share] 
    --datadir=DIR   read-only architecture-independent data [DATAROOTDIR] 
    --infodir=DIR   info documentation [DATAROOTDIR/info] 
    --localedir=DIR   locale-dependent data [DATAROOTDIR/locale] 
    --mandir=DIR   man documentation [DATAROOTDIR/man] 
    --docdir=DIR   documentation root [DATAROOTDIR/doc/ImageMagick] 
    --htmldir=DIR   html documentation [DOCDIR] 
    --dvidir=DIR   dvi documentation [DOCDIR] 
    --pdfdir=DIR   pdf documentation [DOCDIR] 
    --psdir=DIR    ps documentation [DOCDIR] 

Program names: 
    --program-prefix=PREFIX   prepend PREFIX to installed program names 
    --program-suffix=SUFFIX   append SUFFIX to installed program names 
    --program-transform-name=PROGRAM run sed PROGRAM on installed program names 

X features: 
    --x-includes=DIR X include files are in DIR 
    --x-libraries=DIR X library files are in DIR 

System types: 
    --build=BUILD  configure for building on BUILD [guessed] 
    --host=HOST  cross-compile to build programs to run on HOST [BUILD] 
    --target=TARGET configure for building compilers for TARGET [HOST] 

Optional Features: 
    --disable-option-checking ignore unrecognized --enable/--with options 
    --disable-FEATURE  do not include FEATURE (same as --enable-FEATURE=no) 
    --enable-FEATURE[=ARG] include FEATURE [ARG=yes] 
    --enable-silent-rules less verbose build output (undo: "make V=1") 
    --disable-silent-rules verbose build output (undo: "make V=0") 
    --enable-reproducible-build 
          enable reproducible build 
    --enable-dependency-tracking 
          do not reject slow dependency extractors 
    --disable-dependency-tracking 
          speeds up one-time build 
    --enable-ld-version-script 
          enable linker version script (default is enabled 
          when possible) 
    --enable-bounds-checking 
          enable run-time bounds-checking 
    --enable-osx-universal-binary 
          build universal binary on OS X [[default=no]] 
    --disable-openmp  do not use OpenMP 
    --enable-opencl   enable OpenCL support 
    --disable-largefile  omit support for large files 
    --enable-shared[=PKGS] build shared libraries [default=yes] 
    --enable-static[=PKGS] build static libraries [default=yes] 
    --enable-fast-install[=PKGS] 
          optimize for fast installation [default=yes] 
    --disable-libtool-lock avoid locking (might break parallel builds) 
    --enable-delegate-build look for delegate libraries in build directory 
    --disable-deprecated exclude deprecated methods in MagickCore and 
          MagickWand APIs 
    --disable-installed  Formally install ImageMagick under PREFIX 
    --disable-cipher  disable enciphering and deciphering image pixels 
    --enable-zero-configuration 
          enable self-contained, embeddable, 
          zero-configuration ImageMagick 
    --enable-hdri   accurately represent the wide range of intensity 
          levels found in real scenes 
    --disable-assert  disable assert() statements in build 
    --enable-maintainer-mode 
          enable make rules and dependencies not useful (and 
          sometimes confusing) to the casual installer 
    --enable-hugepages  enable 'huge pages' support 
    --enable-ccmalloc  enable 'ccmalloc' memory debug support 
    --enable-efence   enable 'efence' memory debug support 
    --enable-prof   enable 'prof' profiling support 
    --enable-gprof   enable 'gprof' profiling support 
    --enable-gcov   enable 'gcov' profiling support 
    --disable-assert  turn off assertions 
    --disable-docs   disable building of documentation 

Optional Packages: 
    --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] 
    --without-PACKAGE  do not use PACKAGE (same as --with-PACKAGE=no) 
    --with-gnu-ld   assume the C compiler uses GNU ld [default=no] 
    --with-dmalloc   use dmalloc, as in http://www.dmalloc.com 
    --with-gcc-arch=<arch> use architecture <arch> for gcc -march/-mtune, 
          instead of guessing 
    --includearch-dir=DIR ARCH specific include directory 
    --sharearch-dir=DIR  ARCH specific config directory 
    --with-pkgconfigdir=DIR Path to the pkgconfig directory [LIBDIR/pkgconfig] 
    --without-threads  disable threads support 
    --with-pic[=PKGS]  try to use only PIC/non-PIC objects [default=use 
          both] 
    --with-aix-soname=aix|svr4|both 
          shared library versioning (aka "SONAME") variant to 
          provide on AIX, [default=aix]. 
    --with-sysroot[=DIR] Search for dependent libraries within DIR (or the 
          compiler's sysroot if not specified). 
    --with-modules   enable building dynamically loadable modules 
    --with-method-prefix=PREFIX 
          prefix MagickCore API methods 
    --with-quantum-depth=DEPTH 
          number of bits in a pixel quantum (default 16) 
    --with-cache=THRESHOLD set pixel cache threshhold in MB (default available 
          memory) 
    --with-frozenpaths  freeze delegate paths 
    --without-magick-plus-plus 
          disable build/install of Magick++ 
    --with-package-release-name=NAME 
          encode this name into the shared library 
    --with-perl    enable build/install of PerlMagick 
    --with-perl-options=OPTIONS 
          options to pass on command-line when generating 
          PerlMagick build file 
    --with-jemalloc   enable jemalloc memory allocation library support 
    --with-umem    enable umem memory allocation library support 
    --with-libstdc=DIR  use libstdc++ in DIR (for GNU C++) 
    --without-bzlib   disable BZLIB support 
    --with-x    use the X Window System 
    --without-zlib   disable ZLIB support 
    --with-apple-font-dir=DIR 
          Apple font directory 
    --with-autotrace  enable autotrace support 
    --without-dps   disable Display Postscript support 
    --with-dejavu-font-dir=DIR 
          DejaVu font directory 
    --without-fftw   disable FFTW support 
    --without-fpx   disable FlashPIX support 
    --without-djvu   disable DjVu support 
    --without-fontconfig disable fontconfig support 
    --without-freetype  disable Freetype support 
    --with-gslib   enable Ghostscript library support 
    --with-fontpath=DIR  prepend to default font search path 
    --with-gs-font-dir=DIR Ghostscript font directory 
    --with-gvc    enable GVC support 
    --without-jbig   disable JBIG support 
    --without-jpeg   disable JPEG support 
    --without-lcms   disable lcms (v1.1X) support 
    --without-openjp2  disable OpenJP2 support 
    --without-lqr   disable Liquid Rescale support 
    --without-lzma   disable LZMA support 
    --without-openexr  disable OpenEXR support 
    --without-pango   disable PANGO support 
    --without-png   disable PNG support 
    --with-rsvg    enable RSVG support 
    --without-tiff   disable TIFF support 
    --without-webp   disable WEBP support 
    --with-windows-font-dir=DIR 
          Windows font directory 
    --with-wmf    enable WMF support 
    --without-xml   disable XML support 

Some influential environment variables: 
    CC   C compiler command 
    CFLAGS  C compiler flags 
    LDFLAGS  linker flags, e.g. -L<lib dir> if you have libraries in a 
       nonstandard directory <lib dir> 
    LIBS  libraries to pass to the linker, e.g. -l<library> 
    CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if 
       you have headers in a nonstandard directory <include dir> 
    CPP   C preprocessor 
    CXX   C++ compiler command 
    CXXFLAGS C++ compiler flags 
    PKG_CONFIG path to pkg-config utility 
    PKG_CONFIG_PATH 
       directories to add to pkg-config's search path 
    PKG_CONFIG_LIBDIR 
       path overriding pkg-config's built-in search path 
    LT_SYS_LIBRARY_PATH 
       User-defined run-time library search path. 
    CXXCPP  C++ preprocessor 
    XMKMF  Path to xmkmf, Makefile generator for X Window System 
    ZLIB_CFLAGS C compiler flags for ZLIB, overriding pkg-config 
    ZLIB_LIBS linker flags for ZLIB, overriding pkg-config 
    AUTOTRACE_CFLAGS 
       C compiler flags for AUTOTRACE, overriding pkg-config 
    AUTOTRACE_LIBS 
       linker flags for AUTOTRACE, overriding pkg-config 
    fftw3_CFLAGS 
       C compiler flags for fftw3, overriding pkg-config 
    fftw3_LIBS linker flags for fftw3, overriding pkg-config 
    ddjvuapi_CFLAGS 
       C compiler flags for ddjvuapi, overriding pkg-config 
    ddjvuapi_LIBS 
       linker flags for ddjvuapi, overriding pkg-config 
    FONTCONFIG_CFLAGS 
       C compiler flags for FONTCONFIG, overriding pkg-config 
    FONTCONFIG_LIBS 
       linker flags for FONTCONFIG, overriding pkg-config 
    FREETYPE_CFLAGS 
       C compiler flags for FREETYPE, overriding pkg-config 
    FREETYPE_LIBS 
       linker flags for FREETYPE, overriding pkg-config 
    GVC_CFLAGS C compiler flags for GVC, overriding pkg-config 
    GVC_LIBS linker flags for GVC, overriding pkg-config 
    LCMS2_CFLAGS 
       C compiler flags for LCMS2, overriding pkg-config 
    LCMS2_LIBS linker flags for LCMS2, overriding pkg-config 
    LIBOPENJP2_CFLAGS 
       C compiler flags for LIBOPENJP2, overriding pkg-config 
    LIBOPENJP2_LIBS 
       linker flags for LIBOPENJP2, overriding pkg-config 
    LQR_CFLAGS C compiler flags for LQR, overriding pkg-config 
    LQR_LIBS linker flags for LQR, overriding pkg-config 
    LZMA_CFLAGS C compiler flags for LZMA, overriding pkg-config 
    LZMA_LIBS linker flags for LZMA, overriding pkg-config 
    OPENEXR_CFLAGS 
       C compiler flags for OPENEXR, overriding pkg-config 
    OPENEXR_LIBS 
       linker flags for OPENEXR, overriding pkg-config 
    PANGO_CFLAGS 
       C compiler flags for PANGO, overriding pkg-config 
    PANGO_LIBS linker flags for PANGO, overriding pkg-config 
    PNG_CFLAGS C compiler flags for PNG, overriding pkg-config 
    PNG_LIBS linker flags for PNG, overriding pkg-config 
    RSVG_CFLAGS C compiler flags for RSVG, overriding pkg-config 
    RSVG_LIBS linker flags for RSVG, overriding pkg-config 
    CAIRO_SVG_CFLAGS 
       C compiler flags for CAIRO_SVG, overriding pkg-config 
    CAIRO_SVG_LIBS 
       linker flags for CAIRO_SVG, overriding pkg-config 
    XML_CFLAGS C compiler flags for XML, overriding pkg-config 
    XML_LIBS linker flags for XML, overriding pkg-config 

Use these variables to override the choices made by `configure' or to help 
it to find libraries and programs with nonstandard names/locations. 

Report bugs to <http://www.imagemagick.org>. 

Sobald Sie haben sich entschieden, Ihre Möglichkeiten, installieren Sie mit einem Befehl, der wie folgt aussieht:

./configure --prefix="$MSSW" --with-modules --disable-docs --without-x --enable-hdri=yes --with-quantum-depth=16 
make 
make install 

Fügen Sie jetzt $ MSSW/bin zu Ihrem PATH in $ HOME/.profile hinzu.

export PATH=$HOME/sw/bin:${PATH} 

Und melden Sie sich ab und wieder an, um den neuen PATH aktiv zu machen (oder Punkt in Ihrem Profil, wenn Sie wissen, was das bedeutet).

7. Testen Sie die Installation

Jetzt ist es mit testen:

identify -version 

Version: ImageMagick 6.9.2-10 Q16 x86_64 2015-12-23 http://www.imagemagick.org 
Copyright: Copyright (C) 1999-2016 ImageMagick Studio LLC 
License: http://www.imagemagick.org/script/license.php 
Features: Cipher DPC Modules 
Delegates (built-in): bzlib cairo fontconfig freetype jng jp2 jpeg lcms ltdl lzma png rsvg tiff webp x xml zlib 
+0

Was passiert, wenn der Installationspfad für libpng und zlib unterscheidet sich von dem Pfad, wo IM installiert wird? – BRabbit27

Verwandte Themen