expect 移植到ARM

2023-11-01 166浏览
百检网是一家专业的第三方检测平台,汇聚众多拥有权威资质的第三方检测机构为你提供一站式的检测服务,做检测就上百检网。百检网让检测从此检测,一份报告全国通用,专业值得信赖。

一、环境介绍

1.1 宿主机

Ubuntu 1404 32 位

1.2 嵌入式平台

ATMEL AT91SAM9X25

1.3 交叉工具链

arm-none-linux-gnueabi

TCL 与 Expect 源码下载地址

二、交叉编译

2.1 编译 TCL

tar xvf tcl8.6.4-src.tar.gz

cd tcl8.6.4/

cd unix/

export tcl_cv_type_64bit="long long"

export ac_cv_c_bigendian=no

export tcl_cv_strtod_buggy=1

export ac_cv_func_strstr=yes

export ac_cv_func_opendir=yes

./configure --prefix=$PWD/tmp --host=arm-none-linux-gnueabi --build=i686-linux

make V=s

make install

2.1 编译 Expect

tar xvf expect5.45.3.tar.gz

cd expect5.45.3/

./configure --prefix=$PWD/tmp --with-tcl=/home/gino/work/jiaxian/9X25/transplant/expect/tcl8.6.4/unix/tmp/lib --with-tclinclude=/home/gino/work/jiaxian/9X25/transplant/expect/tcl8.6.4/unix/tmp/include

make CC=arm-none-linux-gnueabi-gcc

执行完上述的步骤后,需要将 TCL 安装目录下的 lib 的所有文件拷贝到目标板的 /lib 目录下 ,Expect 编译出来的 可执行文件 expect和库文件libexpect5.45.3.so 分别拷贝到目录板的 /bin 和 /lib

三、使用测试

3.1 测试源码

test.exp

expect "hin"

send "hello there!n"

将上述代码在目标板子执行即可。效果是输入 hi 敲回车,标准输出会打印 hello there

四、补充说明

4.1 在目标板执行发现少了一个 libz.so.1 的库,该库需要交叉编译 zlib-1.2.11 而来。


百检网秉承“客户至上,服务为先,精诚合作,以人为本”的经营理念,始终站在用户的角度解决问题,为客户提供“一站购物式”的新奇检测体验,打开网站,像挑选商品一样简单,方便。打破行业信息壁垒,建构消费和检测机构之间高效的沟通平台