Readline-5.2交叉编译——fileman移植

发布时间:2025-12-09 21:12:42 浏览次数:4

一、软件环境:linux fedora 8

二、硬件环境:AT91RM9200

三、下载readline-5.2包:ftp://ftp.gnu.org/gnu/readline/readline-5.2.tar.gz

四、移植步骤如下:

1、安装readline-5.2

# tar zxf readline-5.2.tar.gz

# cd readline-5.2/

# ./configure --host=arm-linux --prefix=$(pwd)/_install

# make

# make install

这样编译OK以后,在/readline-5.2/shlib下生成2个动态链接库:libhistory.so.5.2和libreadline.so.5.2

 

 

2、我们把这两个库,复制到交叉编译库/usr/local/arm/3.4.1/arm-linux/lib/中

# cp shlib/libhistory.so.5.2 /usr/local/arm/3.4.1/arm-linux/lib/

# cp shlib/libreadline.so.5.2 /usr/local/arm/3.4.1/arm-linux/lib/

 

 

3、然后再做两个软链接:

# cd /usr/local/arm/3.4.1/arm-linux/lib/

# ln -s libreadline.so.5.2 libreadline.so

# ln -s libhistory.so.5.2 libhistory.so

 

 

4、在把readline的头文件放进交叉编译的头文件库里

  cp -a /usr/include/readline/ /usr/local/arm/3.4.1/arm-linux/include/

然后再编译fileman.c

# arm-linux-gcc -o fileman fileman.c -lreadline -lhistory –lncurses

然后编译通不过:

提示:

fileman.c: In function `com_pwd':

fileman.c:444: warning: assignment makes pointer from integer without a cast

/work/usr/local/arm/3.4.1/bin/../lib/gcc/arm-linux/3.4.1/../../../../arm-linux/bin/ld: cannot find -lncurses

collect2: ld returned 1 exit status

这个说明没有安装ncurses库

 

 

5、ncurses-5.5.tar.gz库的安装

下载ncuises库:http://download.chinaunix.net/download.php?id=14653&ResourceID=7242

 安装库:

# tar zxf ncurses-5.5.tar.gz

# cd ncurses

# ./configure --host=arm-linux --prefix=$(pwd)/_install

# make

# make install

然后把/ncurses-5.5/lib目录下生成的 libncurses复制到/usr/local/arm/3.4.1/arm-linux/lib中

# cp lib/libncurses.a /usr/local/arm/3.4.1/arm-linux/lib

好,这样就完成了ncurses库的编辑!

 

 

6、交叉编辑fileman.c文件

#  cd readline-5.2/examples

#  arm-linux-gcc -o fileman fileman.c -lreadline -lhistory –lncurses

这样交叉编译就通过了,生成fileman;同样也可以用gcc编译

#  gcc -o fileman1 fileman.c -lreadline -lhistory –lncurses

生成fileman1

 

 

7、然后将fileman靠到ARM板上,同时将readline交叉编译好的的库:libreadline.so.5.2和libhistory.so.5.2复制到ARM板的/lib目录下,再在ARM上设置2个库德软链接:

# ln –s libreadline.so.5.2 libreadline.5

# ln –s libreadline.so.5.2 libreadline.5

然后再./fileman就可以运行fileman了!!!

需要做网站?需要网络推广?欢迎咨询客户经理 13272073477