未定义对符号“解压缩”的引用,命令行中缺少 DSO

sab*_*ana 4 php compiling 14.04

我正在尝试手动编译我的 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
Run Code Online (Sandbox Code Playgroud)

你知道如何解决这个问题吗?多谢。

sab*_*ana 5

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

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

该链接指向丢失的库。-lz链接zlib

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