找不到-lMagick++-6.Q16
Posted
技术标签:
【中文标题】找不到-lMagick++-6.Q16【英文标题】:cannot find -lMagick++-6.Q16 【发布时间】:2018-08-19 19:14:40 【问题描述】:我尝试安装magick
R 包,但出现错误:
g++ -std=gnu++11 -shared -L/path/apps/R/3.5.1-20180807-test/x86_64-linux-2.6-rhel6/lib64/R/lib -L/path/apps/R/static-zlib-gcc6.3/x86_64-linux-2.6-rhel6/lib -Wl,--exclude-libs,libz.a -Wl,--exclude-libs,libbz2.a -Wl,--exclude-libs,libcurl.a -Wl,--exclude-libs,libpcre.a -Wl,--as-needed -o magick.so RcppExports.o animation.o attributes.o base.o color.o composite.o config.o convolve.o device.o edit.o fonts.o options.o properties.o resize.o transformations.o -L/path/apps/R/static-zlib-gcc6.3/x86_64-linux-2.6-rhel6/lib/ /path/apps/R/static-zlib-gcc6.3/x86_64-linux-2.6-rhel6/lib/libcurl.a /path/apps/R/static-zlib-gcc6.3/x86_64-linux-2.6-rhel6/lib/libz.a -Wl,--exclude-libs,libz.a -Wl,--exclude-libs,libcurl.a -lidn -lssl -lcrypto -lldap -lrt -lcairo -L/path/apps/mysql/5.7.11/x86_64-linux-2.6-rhel6/lib -lmysqlclient -lpthread -lm -lrt -ldl -L/path/apps/R/static-zlib-gcc6.3/x86_64-linux-2.6-rhel6/lib -lxml2 -lz -lm -ldl -L/path/apps/V8/3.14/x86_64-linux-2.6-rhel6/lib64 -L/path/apps/openmpi/1.8.1/x86_64-linux-2.6-rhel6/gnu/lsf/lib -L/path/apps/imagemagick/7.0.7-8/x86_64-linux-2.6-rhel6/lib/pkgconfig -lMagick++-6.Q16 -L/path/apps/R/3.5.1-20180807-test/x86_64-linux-2.6-rhel6/lib64/R/lib -lR
/usr/bin/ld: cannot find -lMagick++-6.Q16
collect2: error: ld returned 1 exit status
make: *** [magick.so] Error 1
ERROR: compilation failed for package ‘magick’
我的LIB_DIR
和INCLUDE_DIR
看起来像这样:
export LIB_DIR="$STATIC_LIB/lib/ $STATIC_LIB/lib/libcurl.a \
$STATIC_LIB/lib/libz.a -Wl,--exclude-libs,libz.a \
-Wl,--exclude-libs,libcurl.a -lidn -lssl -lcrypto -lldap -lrt \
-lcairo $MYSQL_LIBS $XML2_LIBS -L$V8_LIBS \
-L$MPI_HOME/lib \
-L/path/apps/imagemagick/7.0.7-8/x86_64-linux-2.6-rhel6/lib/pkgconfig"
export INCLUDE_DIR="$STATIC_LIB/include -I/usr/include/cairo \
-I/usr/include/pixman-1 -I/usr/include/freetype2 \
-I/usr/include/libpng12 \
-I$MPI_HOME/include \
-I/path/apps/imagemagick/7.0.7-8/x86_64-linux-2.6-rhel6/include/ImageMagick-7"
include
包含:
ls /path/apps/imagemagick/7.0.7-8/x86_64-linux-2.6-rhel6/include/ImageMagick-7
Magick++ MagickCore Magick++.h MagickWand
我找到了this question,但我的lib
目录包含类似的文件集:
ls /path/apps/imagemagick/7.0.7-8/x86_64-linux-2.6-rhel6/lib/
ImageMagick-7.0.7 libMagickCore-7.Q16HDRI.so.4
libMagick++-7.Q16HDRI.a libMagickCore-7.Q16HDRI.so.4.0.0
libMagick++-7.Q16HDRI.la libMagickWand-7.Q16HDRI.a
libMagick++-7.Q16HDRI.so libMagickWand-7.Q16HDRI.la
libMagick++-7.Q16HDRI.so.3 libMagickWand-7.Q16HDRI.so
libMagick++-7.Q16HDRI.so.3.0.0 libMagickWand-7.Q16HDRI.so.4
libMagickCore-7.Q16HDRI.a libMagickWand-7.Q16HDRI.so.4.0.0
libMagickCore-7.Q16HDRI.la pkgconfig
libMagickCore-7.Q16HDRI.so
我正在使用imagemagick 7
,为什么它仍然需要-lMagick++-6.Q16
版本6
中的一些标志/参数?
【问题讨论】:
你在第一行写了-lMagick++-6.Q16
,所以这就是它要查找的内容。
看起来 RMagick 需要 IM 6 而不是 IM 7。
【参考方案1】:
如果pkg-config
和Magick++-config
不可用,则magick
包defaults to ImageMagick v6:
PKG_LIBS="-lMagick++-6.Q16"
因此,您必须安装版本 6。此外,如果安装没有 pkg-config/Magick++-config
,您还可以report an issue 要求支持版本 7。
或者,您可以尝试让pkg-config/Magick++-config
在您的机器上工作。如果可以使用pkg-config/Magick++-config
,则直接使用那里提供的标志。
【讨论】:
【参考方案2】:我终于成功安装了magick
。我从source 编译了 ImageMagick v6 并安装了带有以下一组 env 变量的 R 包:
STATIC_LIB="/path/static-zlib-gcc6.3"
IMAGEMAGICK_V6_HOME="/path/ImageMagick-6.9.10-10"
export LIB_DIR="$STATIC_LIB/lib/ \
-L$IMAGEMAGICK_V6_HOME/lib"
export INCLUDE_DIR="$STATIC_LIB/include \
-DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16 \
-I$IMAGEMAGICK_V6_HOME/include/ImageMagick-6"
export PKG_CONFIG_PATH="$IMAGEMAGICK_V6_HOME/lib/pkgconfig/:$PKG_CONFIG_PATH"
export LD_LIBRARY_PATH="$IMAGEMAGICK_V6_HOME/lib:$LD_LIBRARY_PATH"
【讨论】:
以上是关于找不到-lMagick++-6.Q16的主要内容,如果未能解决你的问题,请参考以下文章
在 Laravel - 使用 ubuntu 16.04 在 xampp 上找不到驱动程序
安装 hadoop 时在 ubuntu 16.04 中找不到 jps 命令
警告:找不到分发的 svn 位置==0.6.16dev-r0