如何使用 libjpeg-turbo8 而不是 libjpeg 编译 libvips

How to compile libvips with libjpeg-turbo8 instead of libjpeg

我想用 libjpeg-turbo8 编译 libvips 以获得更好的性能,但我无法替换它。

同时安装了libjpeg和libjpeg-turbo8时,编译时似乎使用了常规的libjpeg,因为性能很差。 (我有另一个 docker 图像,其中所有内容都能正确编译,而且速度要快得多。)

当我尝试删除 libjpeg 时,它也会删除 libtiff。

所以我的问题是:如何使用 libjpeg-turbo8 编译 libvips,同时保留依赖于 libjpeg 的库?

# apt remove libjpeg8
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
  libjpeg-dev libjpeg8 libjpeg8-dev libtiff-dev libtiff5 libtiff5-dev libtiffxx5
0 upgraded, 0 newly installed, 7 to remove and 113 not upgraded.
After this operation, 1664 kB disk space will be freed.
Do you want to continue? [Y/n] 

在显示所有已安装的 jpeg 库的 apt list 片段下方:

libjpeg-dev/bionic,now 8c-2ubuntu8 amd64 [installed,automatic]
libjpeg-progs/bionic 1:9b-2 amd64
libjpeg-turbo-progs/bionic-updates,bionic-security 1.5.2-0ubuntu5.18.04.3 amd64
libjpeg-turbo-test/bionic-updates,bionic-security 1.5.2-0ubuntu5.18.04.3 amd64
libjpeg-turbo8/bionic-updates,bionic-security,now 1.5.2-0ubuntu5.18.04.3 amd64 [installed]
libjpeg-turbo8-dbg/bionic-updates,bionic-security 1.5.2-0ubuntu5.18.04.3 amd64
libjpeg-turbo8-dev/bionic-updates,bionic-security,now 1.5.2-0ubuntu5.18.04.3 amd64 [installed,automatic]
libjpeg62/bionic 1:6b2-3 amd64
libjpeg62-dev/bionic 1:6b2-3 amd64
libjpeg8/bionic,now 8c-2ubuntu8 amd64 [installed,automatic]
libjpeg8-dbg/bionic 8c-2ubuntu8 amd64
libjpeg8-dev/bionic,now 8c-2ubuntu8 amd64 [installed,automatic]
libjpeg9/bionic 1:9b-2 amd64
libjpeg9-dbg/bionic 1:9b-2 amd64
libjpeg9-dev/bionic 1:9b-2 amd64

不需要重建任何东西——这两个 libjpeg 是二进制兼容的,您可以简单地删除一个库二进制文件并安装另一个。

apt 知道如何做到这一点。只需 apt install libjpeg-turbo8,它就会删除缓慢的 libjpeg8,安装新的 turbo 版本,然后就可以了。