热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

嵌入式Linux_嵌入式linuxvi版本,交叉编译Vim并移植到ARM嵌入式Linux系统

篇首语:本文由编程笔记#小编为大家整理,主要介绍了嵌入式linuxvi版本,交叉编译Vim并移植到ARM嵌入式Linux系统相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了嵌入式linux vi 版本,交叉编译Vim并移植到ARM嵌入式Linux系统相关的知识,希望对你有一定的参考价值。







众所周知,Vim是vi的增强版本,实际体验要比vi好用很多,由于笔者为ARM系统制作的基于busybox的文件系统中只带了vi工具,本文主要介绍怎么移植Vim工具到基于busybox的制作的rootfs中。


一、编译环境:


Host机:Ubuntu-16.10(64bit)


Target: arm


交叉工具链:arm-linux-gnueabi-gcc


工具包:


ncurses-5.9.7 与 vim-7.4.tar.bz2 下载到Linux公社资源站下载:


------------------------------------------分割线------------------------------------------


具体下载目录在 /2016年资料/8月/31日/交叉编译Vim并移植到ARM嵌入式Linux系统/


------------------------------------------分割线------------------------------------------


二、编译准备


将下载后的压缩文件放到/home/liangwode/test文件夹,解压缩两个文件。


tar xvzf ncurses-5.9.7.tar.gz


bzip2 -d vim-7.4.tar.bz2


tar xvf vim-7.4.tar


得到两个目录


vim-74    ncurses-5.9


三、编译ncurses


由于vim依赖于libtinfo.so库,而libtinfo.so库的功能都已经编入了ncurses库中,因此需要先编译ncurses,再创建libtinfo.so的符号链接链到ncurses库即可,进入ncurses目录,并配置交叉编译


cd ncurses-5.9


./configure --prefix=/home/test/install_ncurses  --host=arm-linux-gnueabi --without-cxx --without-cxx-binding --without-ada --without-manpages --without-progs --without-tests --with-shared


编译并安装ncurses库


make && make install


这样在/home/test/install_ncurses目录下就生成了ncurses的库和头文件等文件


bin  include  lib  share


进入lib目录,创建littinfo的符号链接


cd lib


ln -s libncurses.so.5 libtinfo.so.5


ln -s libtinfo.so.5 libtinfo.so


四、编译Vim


进入vim目录,并配置vim编译环境,其中CPPFLAGS指明了vim编译过程中需要用的libtifo库相关的头文件所在目录,同时LDFLAGS指明了libtinfo库所在的目录。


cd /home/liangwode/test/vim74


./configure --with-features=tiny --disable-gui --without-x --disable-selinux --disable-acl --disable-gpm CPPFLAGS=-I/home/liangwode/test/install_ncurses/include/ncurses LDFLAGS=-L/home/liangwode/test/install_ncurses/lib


开始编译


make CC=arm-linux-gnueabi-gcc


如果编译中出现 arm-linux-gnueabi/bin/ld: cannot find -ltinfo的错误,那说明tinfo的库制定的路径不对,或者前面的ncuses编译的步骤存在问题。


五、移植到目标机


首先将ncurses库移植到目标机的/usr/lib目录,并创建tinfo库相关的符号链接,笔者将目标机的根文件系统挂载到了/mnt/sysroot目录


cd /home/liangwode/test/install_ncurses


cp -frP lib/* /mnt/sysroot/usr/lib/


cp -frP share/* /mnt/sysroot/usr/share/


/*创建libtinfo.so的符号链接*/


cd /mnt/sysroot/usr/lib


ln -s libncurses.so.5 libtinfo.so.5


ln -s libtinfo.so.5 libtinfo.so


将vim可执行文件移植到目标机


cd /home/liangwode/test/vim74/src


cp vim /mnt/sysroot/usr/sbin


cd /mnt/sysroot/usr/sbin


chmod 777 vim


删除vi,并将vi链接到vim


cd /bin


rm -f vi


ln -s /usr/sbin/vim vi


重启目标机,开机后,输入vim,大功告成


vim


~


~                              VIM - Vi IMproved


~


~                                version 7.4


~                          by Bram Moolenaar et al.


~                Vim is open source and freely distributable


~


~                          Sponsor Vim development!


~                type  :help sponsor    for information


~


~                type  :q              to exit


~                type  :help  or    for on-line help


~                type  :help version7  for version info


~


~                        Running in Vi compatible mode


~                type  :set nocp        for Vim defaults


~                type  :help cp-default for info on this


~


~


~


0b1331709591d260c1c78e86d0c51c18.png







相关资源:Xshell6提示强制更新替换文件

推荐阅读
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 本文介绍了在Android Studio中使用命令行build gradle的方法,并解决了一些常见问题,包括手动配置gradle环境变量和解决External Native Build Issues的方法。同时提供了相关参考文章链接。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • Vagrant虚拟化工具的安装和使用教程
    本文介绍了Vagrant虚拟化工具的安装和使用教程。首先介绍了安装virtualBox和Vagrant的步骤。然后详细说明了Vagrant的安装和使用方法,包括如何检查安装是否成功。最后介绍了下载虚拟机镜像的步骤,以及Vagrant镜像网站的相关信息。 ... [详细]
  • 本文分析了Wince程序内存和存储内存的分布及作用。Wince内存包括系统内存、对象存储和程序内存,其中系统内存占用了一部分SDRAM,而剩下的30M为程序内存和存储内存。对象存储是嵌入式wince操作系统中的一个新概念,常用于消费电子设备中。此外,文章还介绍了主电源和后备电池在操作系统中的作用。 ... [详细]
  • 本文介绍了在Ubuntu系统中清理残余配置文件和无用内容的方法,包括清理残余配置文件、清理下载缓存包、清理不再需要的包、清理无用的语言文件和清理无用的翻译内容。通过这些清理操作可以节省硬盘空间,提高系统的运行效率。 ... [详细]
author-avatar
出典mosha
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有