环境

  • Ubuntu: Ubuntu 20.20LTS
  • Board: Hi3536
  • ARM-GCC: arm-hisiv400-linux-
  • QT: Qt5.9.9
  • Libiconv: libiconv-1.14
  • Tslib: tslib-1.22

依赖

  • None

1. 介绍

由于历史原因,国际化的文字常常由于语言或者国家的原因使用不同的编码。随着互联网时代的到来,通过互联网进行文字交流也逐渐增多:浏览外国的网站,这个时候字符编码的转换变得尤为重要。这带来了一个问题,就是许多字符在某一种编码方式中没有。为了解决这种混乱,Unicode的编码方式被建立。Unicode是一种超级编码包含了所有这些编码的字符集,因此一些新的文本格式像XML的默认编码方式就是Unicode.但是很多老式的计算机还在使用当地的传统的字符编码方式。而一些程序,例如邮件程序和浏览器必须能在这些不同的用户编码之间作转换。其他的一些程序则内置支持Unicode,以顺利支持国际化的处理,但是仍然有在Unicode和其他的传统编码之间转换的需求。GNU的libiconv就是为这两种应用设计的编码转换库。

2. 源码获取

https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz

获得源码包libiconv-1.14.tar.gz

3. 配置编译

tar xzvf libiconv-1.14.tar.gz
cd libiconv-1.14/
mkdir build
./configure -prefix=$(Libiconv_Base)/build -host=arm-hisiv400-linux
make
make install

在make的时遇到如下错误:

./stdio.h:1010:1: error: ‘gets’ undeclared here (not in a function)
解决方法如下:
vi srclib/stdio.h
找到

/* It is very rare that the developer ever has full control of stdin,so any use of gets warrants an unconditional warning.  Assume it isalways declared, since it is required by C89.  */_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");

然后去掉:

_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");

改成:

#if defined(__GLIBC__) && !defined(__UCLIBC__) && !__GLIBC_PREREQ(2, 16)
_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
#endif

4. 板卡操作

4.1 文件拷贝

我们需要将$(Libiconv_Base)/build/lib/preloadable_libiconv.so这个so文件拷贝到板子里面

4.2 环境变量

export LD_PRELOAD=/root/user/lib/preloadable_libiconv.so

我们可以将这个步骤放到/etc/profile里面

Libiconv移植到Hi3536相关推荐

  1. libiconv移植到android

    1.首先建一个文件environment-setup-aarch64-androidO.sh,这里面设置环境变量 export SDKTARGETSYSROOT=/opt/my-android8-to ...

  2. 昂达平板4.22系统,测试新移植的libiconv

    在我的昂达平板上4.22系统,测试新移植的libiconv, 1. 加载so失败 shell@android:/data/zhangbin # ./genutf8 ./genutf8 soinfo_l ...

  3. libiconv交叉移植

    下载 http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz 具体解释一下,build就是你正在使用的机器,host就是你编译好的程序可以运行 ...

  4. 交叉编译ffmpeg+移植Hi3536板子

    我所用的编译环境   Ubuntu16.04 交叉编译器:arm-hisiv300-linux-gcc 首先我们要安装先x264 1.x264的编译(具体路径需要自己配置) CC=arm-hisiv3 ...

  5. 海思Hi3536移植QT5.9.8教程

    参考文章: <https://blog.csdn.net/understand125/article/details/87968043> <https://blog.csdn.net ...

  6. jquery程序 windows移植到linux显示不了,windows程序移植linux

    1,路径名统一用正斜杠"/".(windows下正反斜杠都识别,linux只认正斜杠.) 2,统一使用UTF-8格式编码. vim中无法保存汉字时,可输入下列命令: :set fi ...

  7. SDL及扩展库在ARM-Linux 完整移植

    SDL的正确运行需要大量的支持库 1.编译安装支持库 在ARM-LINUX编译SDL之前.需要编译如下安装库. 常见的库的iconv,zlib,freetype等都要 SDL支持库的移植参见.我的博客 ...

  8. php 移植 arm 精简,arm linux 移植 PHP

    背景: PHP 是世界上最好的语言,所以要考虑php的移植. host平台 :Ubuntu 16.04 arm平台 : 3531d arm-gcc :4.9.4 主机准备: 使用以下脚本 ## # C ...

  9. 移植QT5.6到韦东山JZ2240嵌入式开发板(史上最最最最最详细的QT移植教程)

    首先感谢http://blog.csdn.net/lizuobin2/article/details/52673494的博主,应该是韦东山团队的老师,说实话,拿到JZ2440的板子很长时间了,每次都有 ...

最新文章

  1. 你看过Xgboost原文吗?
  2. 【转】android IDE——通过DDMS查看app运行时所占内存情况
  3. 企业日志分析 五大问题需重点注意
  4. CSS中设置border属性为0与none的区别
  5. 【NOIP 模拟赛】 道路
  6. J-Rooms及时会议室 v4.5.5333.1104
  7. Python批量提取Excel文件中的图片
  8. Tesseract-OCR识别中文与训练字库实例
  9. 【python】编码
  10. matlab常用代码程序
  11. 数据中心Overlay技术简介
  12. nssa和stub_华为路由器OSPF设置之NSSA和STUB
  13. 【晓风残月】ASP.NET DEMO 16: 通过GridView布局实现的多行批量更新
  14. 达尔豪西大学 计算机科学,西安大略大学和达尔豪西大学哪个好
  15. IP签名档PHP源码,简单几步,教你制作自己的显IP签名档
  16. 【雕爷学编程】Arduino动手做(73)---TM1637四位数码管
  17. javascript返回多个参数
  18. 推荐几款好用的思维导图软件
  19. css关于:hover的使用
  20. Pedometer class 计步器类

热门文章

  1. NOIP 2013 普及组初赛试题
  2. 数据库sql语句删除指定日期或之前之后的数据
  3. ORACLE数据库 自动备份 定时计划任务 windows
  4. 立体声混音没有声音_如何录制来自PC的声音(即使没有立体声混音)
  5. 低成本MEMS惯导系统的捷联惯导解算MATLAB仿真
  6. Rap2导出swagger2格式json,方便转入yapi
  7. uClinux 内核编译常见错误及解决方法(zt)
  8. 果实可采摘点论文汇总
  9. 6-CSS字体及文本样式
  10. 四种常见的Git工作流