【问题标题】:Libjpeg-9d: ./configure --disable-shared still produce .so files on LinuxLibjpeg-9d:./configure --disable-shared 仍然在 Linux 上生成 .so 文件
【发布时间】:2021-09-24 09:15:41
【问题描述】:

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

编译其实很好,所有的配置步骤,制作,安装都很好。

./configure --disable-shared
make
make install

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

install.txt 说使用--disable-shared 就足够了。 但它不起作用。

我在 Alpine 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 配置脚本中的一个错误。 有没有机会解决它甚至修复它?

【问题讨论】:

  • 向 libjpeg 提交错误。
  • 对不起,我不知道 IJG libjpeg 支持的联系方式。 ijg.org 或 jpegclub.org 都没有支持联系人。
  • 在您的发行版中打开自述文件?
  • 好的,谢谢,确实有一些联系邮箱。

标签: linux makefile configure alpine libjpeg


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多