vim 移植记录
-
下载两个源码包:
vim :
ftp://ftp.vim.org/pub/vim/unix/vim-7.4.tar.bz2\
ncurses-5.8.tar.gz
http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.8.tar.gz
-
因为vim 依赖相关的终端库,所以先交叉编译 ncurses
tar -xvf ncurses-5.8.tar.gz
cd ncurses-5.8
vim build.sh
#!/bin/sh
./configure --prefix=/home/sbc_7816_sdk6/test/gdb/ncurses-5.8/output --host=arm-linux CC=arm-linux-gcc --without-cxx --without-cxx-binding --without-ada --without-manpages --without-progs --without-tests --with-shared
make
make install
生成的库在 output 目录下
sbc_7816_sdk6@aplex:~/test/gdb/ncurses-5.8$ ls output/
bin include lib share
sbc_7816_sdk6@aplex:~/test/gdb/ncurses-5.8$ ls output/lib/
libform.a libform.so.5 libmenu_g.a libmenu.so.5.8 libncurses.so libpanel.a libpanel.so.5
libform_g.a libform.so.5.8 libmenu.so libncurses.a libncurses.so.5 libpanel_g.a libpanel.so.5.8
ibform.so libmenu.a libmenu.so.5 libncurses_g.a libncurses.so.5.8 libpanel.so terminfo
-
相关的库交叉编译出来了,现在来交叉编译 vim
tar -xvf vim-7.4.tar.bz2
cd vim74
vim build.sh
#!/bin/sh
./configure --with-features=tiny --disable-gui \
--without-x --disable-selinux --disable-acl --disable-gpm \
CC=arm-none-linux-gnueabi-gcc \
--host=arm-none-linux-gnueabi \
--with-tlib=ncurses \
vim_cv_terminfo=yes \
vim_cv_getcwd_broken=no \
vim_cv_memmove_handles_overlap=yes \
vim_cv_stat_ignores_slash=yes \
vim_cv_tgetent=zero \
vim_cv_terminfo=yes \
vim_cv_toupper_broken=no \
vim_cv_tty_group=root \
vim_cv_tty_mode=0620
--with-tlib=ncurses \
// 这个参数很重要,要指定库的名字,不然后 configure 一直过不去。
make
// 这个make install 不了。
// 在 src 里面能找到 vim
// 将vim 放到目标文件的 usr/sbin/ 里面,替换原来的 vim
// 将 ncurses 的库放在 usr/lib 里面。
// 在目标文件系统里面 etc/profile 里面加入
export TERM="xterm"
// 不然会报 E437: terminal capability "cm" required 错误
// 启动嵌入式文件系统,看一下效果。
Read The Fucking Source Code