我试图在Ubuntu 16.04 LTS上安装Sharp。

我本来没有VIP,所以我安装了

    sudo apt-get install libvips-dev

这样可以解决第一个错误,但是现在我遇到了另一个错误:
    In file included from ../src/common.cc:25:0:
    /usr/include/vips/vips8:35:25: fatal error: glib-object.h: No such file or directory
    compilation terminated.
    sharp.target.mk:115: recipe for target 'Release/obj.target/sharp/src/common.o' failed
    make: *** [Release/obj.target/sharp/src/common.o] Error 1
    make: Leaving directory '/home/rachel/node_modules/sharp/build'
    gyp ERR! build error
    gyp ERR! stack Error: `make` failed with exit code: 2
    gyp ERR! stack   at ChildProcess.onExit (/usr/share/node-gyp/lib/build.js:269:23)
    gyp ERR! stack     at emitTwo (events.js:87:13)
    gyp ERR! stack     at ChildProcess.emit (events.js:172:7)
    gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
    gyp ERR! System Linux 4.15.0-36-generic
    gyp ERR! command "/usr/bin/nodejs" "/usr/bin/node-gyp" "rebuild"
    gyp ERR! cwd /home/rachel/node_modules/sharp
    gyp ERR! node -v v4.2.6
    gyp ERR! node-gyp -v v3.0.3
    gyp ERR! not ok

因此,我弄清楚了glib-object.h属于哪个软件包,并尝试安装它,但是它已经安装了。实际上,该文件确实存在。
    /usr/include/glib-2.0/glib-object.h

经过大量浏览后,我发现了一个类似的问题,他们询问 header 的位置是否在pkg-config --cflags vips-cpp中。对于提问者而言,不是这样,而是可以解决的,但是对我而言,它就是(自下而上)。
    > pkg-config --cflags vips-cpp
    -pthread -fopenmp -DMAGICKCORE_HDRI_ENABLE=0
    -DMAGICKCORE_QUANTUM_DEPTH=16
    -fopenmp -DMAGICKCORE_HDRI_ENABLE=0
    -DMAGICKCORE_QUANTUM_DEPTH=16 -I/usr/include/libgsf-1
    -I/usr/include/libxml2
    -I/usr/include/x86_64-linux-gnu//ImageMagick-6
    -I/usr/include/ImageMagick-6
    -I/usr/include/x86_64-linux-gnu//ImageMagick-6
    -I/usr/include/ImageMagick-6
    -I/usr/include/orc-0.4
    -I/usr/include/OpenEXR
    -I/usr/include/openslide
    -I/usr/lib/x86_64-linux-gnu/hdf5/serial/include
    -I/usr/include/pango-1.0
    -I/usr/include/harfbuzz
    -I/usr/include/pango-1.0
    -I/usr/include/freetype2
    -I/usr/include/x86_64-linux-gnu
    -I/usr/include/libpng12
    -I/usr/include/libexif
    -I/usr/include/glib-2.0
    -I/usr/lib/x86_64-linux-gnu/glib-2.0/include

验证文件是否存在及其文件夹是否包含在上面的输出中之后,我还没有找到任何解决方案。我完全不知道下一步该怎么做,因此任何建议将不胜感激。

npm是一个全新的安装(截至昨天),以防万一。

最佳答案

看起来vips-cpp在寻找GObject,而不是GLib,但是pkg-config文件仅询问GLib。 GObject基于GLib,它们密切相关,但是它们不是同一项目。

您应该以某种方式将gobject-2.0添加到pkg-config依赖项。您可以在清晰的构建系统中执行此操作(无论将其拉入vips-cpp软件包中的哪个位置,它都还取决于gobject-2.0)。您还可以修复vips-cpp pkg-config文件,以将gobject-2.0添加为依赖项。 where the file is depends on your architecture,但它是$LIBDIR/pkg-config/vips-cpp.pc

10-06 13:15