对符号‘uncompress’的未定义引用,命令行中缺少 DSO

对符号‘uncompress’的未定义引用,命令行中缺少 DSO

我正在尝试手动编译我的 php iconv 扩展,以便它使用 libiconv 而不是 glibc。我下载了 libiconv,并使用 进行配置./configure --prefix=/usr/localmake然后sudo make install

我找到了有关手动编译的说明:https://stackoverflow.com/questions/4743080/how-can-i-force-php-to-use-the-libiconv-version-of-iconv-instead-of-the-centos-in/4851065#4851065

我有一个 php 版本 5.6.10,它是使用 phpbrew 安装的,所以我从步骤#3开始。

在步骤#5(make)中,我遇到了以下错误:

/usr/bin/ld: ext/standard/.libs/image.o: undefined reference to symbol 'uncompress'
//lib/x86_64-linux-gnu/libz.so.1: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make: *** [sapi/cli/php] Error 1

您知道如何解决这个问题吗?非常感谢。

答案1

我通过编辑Makefile并添加-lz来解决这个问题EXTRA_LIBS

  1. Makefile在目录中查找php
  2. 搜索EXTRA_LIBS
  3. 添加-lz标志。

这链接到缺失的库。-lz链接

该解决方案基于kevinf 的回答奇怪的链接错误:命令行中缺少 DSO在 Stack Overflow 上。

相关内容