交叉編譯VIM並移植到ARM嵌入式Linux系統

2021-08-03 02:41:30 字數 2983 閱讀 1895

一、編譯環境:

host

機:ubuntu-16.10(32bit)

target:

arm

交叉工具鏈:

arm-linux-gnueabi-gcc

工具包:

vim-7.4.tar.bz2

ncurses-5.9.tar.gz

vimncurses

二、編譯準備

/home/abc/test

資料夾,解壓縮兩個檔案。

tar xvzf ncurses-5.9.7.tar.gz

bzip2 -d vim-7.4.tar.bz2

tar xvf vim-7.4.tar

得到兩個目錄

vim74    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

拷貝交叉編譯後的install_ncureses目錄下的所有到交叉編譯機相應目錄下

四、編譯

vim

進入vim

目錄,並配置

vim編譯環境。

cd /home/abc/test/vim74

./configure --host=arm-fsl-linux-gnueabi--prefix=/usr --with-features=huge --disable-gui --without-x --disable-selinux--disable-acl --disable-gpm --with-tlib=ncurses vim_cv_getcwd_broken=novim_cv_memmove_handles_overlap=yes vim_cv_stat_ignores_slash=yesvim_cv_tgetent=zero vim_cv_terminfo=yes vim_cv_toupper_broken=novim_cv_tty_group=root vim_cv_tty_mode=0620

開始編譯

make

如果編譯中出現

arm-linux-gnueabi/bin/ld: cannot find -ltinfo

的錯誤,那說明

tinfo

的庫制定的路徑不對,或者前面的

ncuses

編譯的步驟存在問題。

五、移植到目標機

首先將ncurses

庫移植到目標機的

/usr/lib

目錄,並建立

tinfo

/mnt/sysroot目錄

cd /home/abc/test/install_ncurses

cp -frp lib/* / usr/lib/

cp -frp share/* / usr/share/

/*建立libtinfo.so的符號鏈結*/

cd /mnt/sysroot/usr/lib 將

vim可執行檔案移植到目標機

cd /home/abc/test/vim74/src

cp vim /usr/sbin

cd /usr/sbin

chmod 777 vim 刪除

vi,並將

vi鏈結到

vim

cd /bin

rm -f vi

ln -s /usr/sbin/vim vi

六、配置

vim

將vim.tar.bz2

解壓放入

/usr/share

目錄;將

vimrc

檔案放入

/etc/vim

目錄;解壓

vim.tar.bz2

後編輯vim/vim74/debian.vim:

搜尋:if &term =~ "xterm-debian" || &term =~"xterm-xfree86"

改為:if&term =~ "xterm-debian" || &term =~ "xterm-xfree86"|| &term =~ "linux"

;sett_co=16

改為set t_co=8

移植DHCP 4 1到ARM平台(交叉編譯)

二 解壓原始碼包,進入解壓後的目錄,輸入.configure命令。三 輸入make cc usr local arm 4.3.2 bin arm linux gcc static 命令,編譯後在client目錄下可得到dhclient可執行檔案。四 將client目錄下編譯好的dhclient可執行...

交叉編譯libparted到arm

libparted版本為parted 3.0,libuuid版本為libuuid.1.0.3 1.交叉編譯libuud 編譯配置選項 configure host arm none linux gnueabi prefix usr local uuid arm 注 安裝路徑為本人自行建立並指定,編譯...

python 交叉編譯到ARM

1.交叉編譯需要,先編譯pc版python 再編譯arm出來,用於生成語法解析器 configure make parser pgen2.配置 和編譯 export cc arm openwrt linux gcc configure host arm openwrt linux prefix ho...