Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> 電腦軟體教學 >> 伺服器技術 >> 關於伺服器

PHP 編譯報錯 "make: *** [sapi/cli/php] Error 1" 解決:補齊 -liconv 鏈接庫

編輯:關於伺服器

源碼編譯 PHP 5.5/5.6 時,make 階段報錯 make: *** [sapi/cli/php] Error 1,多因 configure 未正確檢測 libiconv 導致鏈接階段缺少 -liconv。本文提供 Makefile 手動修補法,快速繞過編譯阻斷。

錯誤現場


/bin/sh /root/php-5.5.19/libtool --silent --preserve-dup-deps --mode=link cc \
  -export-dynamic -O2 -fpic ...  -o sapi/cli/php \
  sapi/cli/php_cli.o sapi/cli/php_http_parser.o sapi/cli/php_getopt.o sapi/cli/php_cli_server.o \
  libs/libphp5.bundle -lcrypt -lz ... -lxml2 -lz -lm -lcrypt
/usr/bin/ld: cannot find -liconv
collect2: error: ld returned 1 exit status
make: *** [sapi/cli/php] Error 1
關鍵行: /usr/bin/ld: cannot find -liconv —— 鏈接器找不到 iconv 庫。

修補步驟

  1. 編輯 Makefile:
    vi Makefile
    
  2. 定位 EXTRA_LIBS 變量 (約第 106 行,版本不同行號浮動):
    
    /EXTRA_LIBS
    # 或直接搜尋關鍵字
    
  3. 在行尾追加 -liconv:
    
    # 修改前
    EXTRA_LIBS = -lcrypt -lz -lcrypt -lrt -lmysqlclient ... -lcrypt
    
    # 修改後 (行尾加空格 -liconv)
    EXTRA_LIBS = -lcrypt -lz -lcrypt -lrt -lmysqlclient ... -lcrypt -liconv
    
  4. 保存退出,重新 make:
    
    :wq
    make -j$(nproc)  # 多核並行加速
    

替代方案:安裝 libiconv-devel 讓 configure 自動檢測


# CentOS/RHEL
yum install -y libiconv-devel

# Debian/Ubuntu
apt-get install -y libiconv-hook-dev

# 重新 configure (需 make clean)
make clean
./configure --with-iconv=/usr/local/libiconv ...  # 指定前綴
make

優先推薦方案二,從源頭解決依賴缺失;Makefile 修補屬應急手段,升級版本需重複操作。

驗證編譯產物


sapi/cli/php -v
# PHP 5.5.19 (cli) (built: ...)
# Copyright (c) 1997-2014 The PHP Group
# Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies

補齊 -liconv 即可通過鏈接階段,編譯出完整 CLI SAPI 二進制,後續 make install 部署無阻。

Copyright © Windows教程網 All Rights Reserved