您的位置:首页 > 其它

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

2009-12-05 12:42 169 查看
一、软件环境: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了!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: