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 实用程序的问题。
我正在尝试从 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 实用程序的问题。