最近遇到一个问题,在安装PHP的时候,make步骤出现这样的错:
ext/iconv/iconv.o: In function `_php_iconv_appendl': /home/r/php-5.3.3/ext/iconv/iconv.c:337: undefined reference to `_iconv' /home/r/php-5.3.3/ext/iconv/iconv.c:374: undefined reference to `_iconv' ext/iconv/iconv.o: In function `_php_iconv_strlen': /home/r/php-5.3.3/ext/iconv/iconv.c:615: undefined reference to `_iconv' ext/iconv/iconv.o: In function `_php_iconv_substr': /home/r/php-5.3.3/ext/iconv/iconv.c:736: undefined reference to `_iconv' ext/iconv/iconv.o: In function `php_iconv_string': /home/r/php-5.3.3/ext/iconv/iconv.c:501: undefined reference to `_iconv' ext/iconv/iconv.o:/var/src/php-5.3.3/ext/iconv/iconv.c:521: more undefined references to `_iconv' follow collect2: ld returned 1 exit status make: *** [sapi/cgi/php-cgi.exe] Error 1
我编绎的参数是这样的:
./configure --prefix=/usr/local/php_fcgi --enable-cgi --enable-force-cgi-redirect --with-zlib --with-xml --disable-debug --enable-inline-optimization --with-gd --enable-gd-native-ttf --with-freetype-dir=/usr/local --enable-mbstring --with-openssl --with-mysql=/usr/local/mysql --with-jpeg-dir=/usr --with-curl
这样是make不成功的,这是因为机器上没有安装iconv,安装后再编绎即可,我的解决步骤是这样的:
先安装iconv:
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz tar -zxvf libiconv-1.13.1.tar.gz cd libiconv-1.13.1 ./configure --prefix=/usr/local make && make install
接下来再编绎php的时候加上–with-iconv=/usr/local/ 即可:
./configure --prefix=/usr/local/php_fcgi --enable-cgi --enable-force-cgi-redirect --with-zlib --with-xml --disable-debug --enable-inline-optimization --with-gd --enable-gd-native-ttf --with-freetype-dir=/usr/local --enable-mbstring --with-openssl --with-mysql=/usr/local/mysql --with-jpeg-dir=/usr --with-curl --with-iconv=/usr/local/
Tags: iconv, make: *** [sapi/cgi/php-cgi.exe] Error 1, php

本文介绍了解决在编译PHP过程中遇到的与iconv相关的链接错误的方法。通过安装iconv并正确配置编译参数,成功解决了编译过程中的未定义引用问题。
1636

被折叠的 条评论
为什么被折叠?



