zoukankan      html  css  js  c++  java
  • linux php 安装libiconv过程与总结

    问题:在嵌入式linux 已经安装好的php的情景下,需要安装一个扩展库libiconv
    背景:从后台传的数据含有中文(gbk2312)的通过json_encode 显示为null,查阅资料发现json_encode只能转换utf-8的数据,解决办法两种:1.安装libiconv库 2.通过php urlencode 加密,在通过urldecode解码
    解决办法1:

    	1>.下载libiconv 包 http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
    	2>.解压,放在php-5.4.30 ext 中
    		cd php-5.4.30/ext
    		tar zxvf libiconv-1.14.tar.gz
    	3>.安装
    		./configure --prefix=/usr/local/libiconv --enable-static --disable-shared --host=$host 
    		make 
    		make install 
    		安装成功后会生成4个文件夹 
    		bin include lib share
    		注意在 lib目录下生成.a 如下图
             
    
        
    	4>.编译php 加上iconv的路径
    	./configure --prefix=/usr/local/php5.4.30 --with-iconv=/usr/local/libiconv/
    

    编译成功就可以使用了:
    * 在编译libiconv加上host 总是报如下的问题:

    1>.
    /usr/local/ARMv7a9_iproc/usr/bin/../lib/gcc/arm-broadcom-linux-uclibcgnueabi/4.7.2/../../../../arm-broadcom-linux-uclibcgnueabi/bin/ld: iconv.o: Relocations in generic ELF (EM: 3)
    /usr/local/ARMv7a9_iproc/usr/bin/../lib/gcc/arm-broadcom-linux-uclibcgnueabi/4.7.2/../../../../arm-broadcom-linux-uclibcgnueabi/bin/ld: iconv.o: Relocations in generic ELF (EM: 3)
    /usr/local/ARMv7a9_iproc/usr/bin/../lib/gcc/arm-broadcom-linux-uclibcgnueabi/4.7.2/../../../../arm-broadcom-linux-uclibcgnueabi/bin/ld: iconv.o: Relocations in generic ELF (EM: 3)
    /usr/local/ARMv7a9_iproc/usr/bin/../lib/gcc/arm-broadcom-linux-uclibcgnueabi/4.7.2/../../../../arm-broadcom-linux-uclibcgnueabi/bin/ld: iconv.o: Relocations in generic ELF (EM: 3)
    iconv.o: could not read symbols: File in wrong format
    collect2: error: ld returned 1 exit status
    make[1]: *** [install] Error 1
    make[1]: Leaving directory `/home/yilia/3.61_tmp/ESW/apps/php-5.4.30/ext/libiconv-1.14/src'
    make: *** [install] Error 2
    

      

    在libicon 源码的地方 进入libiconv-1.14 执行 make distclean 清理一下,删掉生成libiconv,在重新编译就可以了。

    2>.在安装好iconv,编译php的时候总是报如下错误,

    原因:1.php中--with-iconv的路径写的不对
    2.在编译php的时候需要重新编译libiconv。

    #解决办法2比较简单就不在说了。

    常用知识总结:
    *用到的基础命令:
    $?:命令执行后返回的状态
    $#:位置参数的数量
    $*:所有位置参数的内容
    *数值测试
    -eq:等于则为真
    -ne:不等于则为真
    -gt:大于则为真
    -lt:小于则为真
    -le:小于等于则为真
    * 文件测试
    -e 文件名:如果文件存在则为真
    -r 文件名:如果文件存在且可读则为真
    -w 文件名: 如果文件存在且可写则为真
    -x 文件名: 如果文件存在且可执行则为真
    -d 文件名: 如果文件存在且为目录则为真
    -f 文件名: 如果文件存在且为普通文件则为真

    *$CROSS_COMPILE"strip" -S $ROOTFS_DIR/usr/bin/ros
    编译出来的过滤很多打印 调试 压缩
    $CROSS_COMPILE :export CROSS_COMPILE="$CC_TOOL arm-broadcom-linux-uclibcgnueabi-"

  • 相关阅读:
    基于Html5的爱情主题网站–表白神器
    一个基于WebGL的仿真3D水池有逼真的水波纹效果
    一些纯css3写的公司logo
    IIS、SQL SERVER和VS的安装顺序
    SQL Server 2008 收缩日志 清空删除大日志文件
    判断SqlConnection连接是否关闭
    正则
    C# MD5加密字符串
    sqlServer MD5
    sqlserver 连接数
  • 原文地址:https://www.cnblogs.com/moon-yyl/p/11857178.html
Copyright © 2011-2022 走看看