# [转载]PHP 5.3.17 编译安装时出现 undefined reference to `libiconv’ 错误的解决方法

- URL: https://wuming.si/blog/594/
- Author: Aaron
- Published: 2014-08-06
- Language: en
- Categories: Technology
- Originally published at: https://blog.wo.ai/archives/594

**手动编译PHP安装时遇到如下错误**

/usr/local/src/php-5.3.10/ext/xmlrpc/libxmlrpc/encodings.c:73: undefined reference to `libiconv_open’ /usr/local/src/php-5.3.10/ext/xmlrpc/libxmlrpc/encodings.c:81: undefined reference to `libiconv’ /usr/local/src/php-5.3.10/ext/xmlrpc/libxmlrpc/encodings.c:101: undefined reference to `libiconv_close’ collect2: ld returned 1 exit status make: *** [sapi/fpm/php-fpm] 错误

**1 表面看，是libiconv安装问题，重装libiconv之后问题依旧，网上看有人舍弃libiconv，使用 –without-iconv，我觉的不可取，这样是回避问题。 找了n久，终于找到bug所在: 在执行完 ./configure … 之后，修改下 Makefile，找到其中的**

EXTRA_LIBS = -lcrypt -lz -lcrypt -lrt -lmysqlclient -lmcrypt -lldap -llber -lfreetype -lpng -lz -ljpeg -lcurl -lz -lrt -lm -ldl -lnsl -lrt -lxml2 -lz -lm -lssl -lcrypto -ldl -lz -lcurl -ldl -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lidn -lssl -lcrypto -lz -lxml2 -lz -lm -lssl -lcrypto -ldl -lz -lxml2 -lz -lm -lxml2 -lz -lm -lcrypt -lxml2 -lz -lm -lxml2 -lz -lm -lxml2 -lz -lm -lxml2 -lz -lm -lcrypt

**在最后面添加 -liconv ，修改后如下**

EXTRA_LIBS = -lcrypt -lz -lcrypt -lrt -lmysqlclient -lmcrypt -lldap -llber -lfreetype -lpng -lz -ljpeg -lcurl -lz -lrt -lm -ldl -lnsl -lrt -lxml2 -lz -lm -lssl -lcrypto -ldl -lz -lcurl -ldl -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lidn -lssl -lcrypto -lz -lxml2 -lz -lm -lssl -lcrypto -ldl -lz -lxml2 -lz -lm -lxml2 -lz -lm -lcrypt -lxml2 -lz -lm -lxml2 -lz -lm -lxml2 -lz -lm -lxml2 -lz -lm -lcrypt -liconv

本文出自 “[技术成就梦想](http://flyfishes.blog.51cto.com/)” 博客，请务必保留此出处<http://flyfishes.blog.51cto.com/3527694/819693>
