libiconv list

Debian 12 / Ubuntu 24.04 LTS 上编译安装 PHP 8.4.2 时出现错误:configure: error: iconv does not support errno,x86_64 和 ARM64 平台上均出现此错误

script 中其中 libiconv 的编译安装如下

# Download and install libiconv
wget https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.17.tar.gz
tar zxf libiconv-1.17.tar.gz
cd libiconv-1.17
./configure --enable-static
make && make install
cd ..

PHP 部分编译参数如下

./configure --prefix=/usr/local/php \
    --with-config-file-path=/usr/local/php/etc \
    --with-config-file-scan-dir=/usr/local/php/conf.d \
    --enable-fpm \
    --with-fpm-user=www \
    --with-fpm-group=www \
    --enable-mysqlnd \
    --with-mysqli=mysqlnd \
    --with-pdo-mysql=mysqlnd \
    --with-iconv=/usr/local/ \
    ...
    ...

ldd 查看共享动态库若正确则如下显示

root@hetzner-fsn1-003:~/libiconv-1.17# ldd $(which iconv)
        linux-vdso.so.1 (0x0000f77deaa26000)
        libiconv.so.2 => /usr/local/lib/libiconv.so.2 (0x0000f77dea8b0000)
        libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000f77dea6f0000)
        /lib/ld-linux-aarch64.so.1 (0x0000f77dea9e9000)

若提示 not found 则如下显示

root@hetzner-fsn1-003:~/libiconv-1.17# ldd $(which iconv)
        linux-vdso.so.1 (0x0000f86724c72000)
        libiconv.so.2 => not found
        libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000f86724a50000)
        /lib/ld-linux-aarch64.so.1 (0x0000f86724c35000)

解决办法

export 添加临时变量

更新 LD_LIBRARY_PATH: 添加 /usr/local/libLD_LIBRARY_PATH 环境变量:

export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

ln 创建软链接指向 /usr/local/lib/libiconv.so.2

可以使用符号链接将 libiconv.so.2 放置在一个系统自动搜索的目录中。例如,将它链接到 /usr/lib:

sudo ln -s /usr/local/lib/libiconv.so.2 /usr/lib/libiconv.so.2
sudo ldconfig
root@hetzner-fsn1-003:~# ls -l /usr/lib/libiconv.so.2 
lrwxrwxrwx 1 root root 28 Jan 19 03:52 /usr/lib/libiconv.so.2 -> /usr/local/lib/libiconv.so.2

追加 '/usr/local/lib' 到 '/etc/ld.so.conf'

/usr/local/lib 添加到 /etc/ld.so.conf 并执行 ldconfig

echo "/usr/local/lib" | sudo tee -a /etc/ld.so.conf
sudo ldconfig

参考资料

configure does not detect GNU libiconv correctly · Issue #12213 · php/php-src

最后修改:2025 年 01 月 19 日
如果觉得我的文章对你有用,请随意赞赏