Libjpeg-9d:./configure --disable-shared 仍然在 Linux 上生成 .so 文件

Libjpeg-9d: ./configure --disable-shared still produce .so files on Linux

我正在尝试从 Alpine Linux (3.14.2) 上的源代码构建 jpeg-9d 库。 我只想从 libjpeg 获取静态库(.a 文件)。 这是因为我想将所有第 3 方依赖项集成到我的应用程序中。这是因为我选择了 Alpine Linux 由于静态 musl C 库。

实际上编译没问题,所有配置步骤、make、make install 都很顺利。

./configure --disable-shared
make
make install

但之后我在 /usr/local/lib 目录中看到 libjpeg.so 文件。 实际上 libjpeg.a 和 libjpeg.so 都存在于 /usr/local/lib.

install.txt 说使用 --disable-shared 应该就足够了。 但是没用。

我在 Alpine 上将许多第 3 方库构建到静态配置中 Linux; 他们都只生成 .a 个文件(当然,我使用了额外的配置标志), 像 zlib、bzip2、xz、zstd、libpng、giflib(需要小补丁)、expat、freetype2、fontconfig、json、openssl、tiff、boost 等

之前我使用了 libjpeg-6b,而不是只使用 make install 我使用了

make install-lib

命令,我只得到 .a 个文件。旧的 jpeg-6b 支持 install-lib 目标。但是新的 libjpeg-9d 在 make 文件中不支持这个目标。

我认为这是 jpeg-9d 配置脚本中的错误。 是否有机会解决甚至修复它?

实际上 --enable-shared=no 工作正常,没有 .so 文件被复制到 /usr/local/lib!

所以,我可以使用 --enable-shared=no 而不是 --disable-shared

./configure --enable-shared=no
make
make install

可能是 automake/autoconf Alpine Linux 实用程序的问题。