1、从ncurses官网下载源码 https://ftp.gnu.org/pub/gnu/ncurses/
2、解压后进入源码目录,初始化交叉编译环境,imx6系列的CPU初始化方法如下:
. /opt/fsl-imx-fb/4.1.15-2.1.0/environment-setup-cortexa9hf-neon-poky-linux-gnueab
查看配置参数
tuo@ncurses-6.2$ echo $CONFIGURE_FLAGS
--target=arm-poky-linux-gnueabi --host=arm-poky-linux-gnueabi --build=x86_64-linux --with-libtool-sysroot=/opt/fsl-imx-fb/4.1.15-2.1.0/sysroots/cortexa9hf-neon-poky-linux-gnueabi
3、配置ncurses源码,可直接使用上述变量作为配置参数,由于默认使用系统自带的strip命令(X86-64)裁剪目标文件(ARM),会导致编译失败,这里先禁止使用strip命令裁剪(--disable-stripping)。如果因为存储空间有限,需要裁剪,可以在Makefile中指定使用arm-poky-linux-gnueabi-strip命令,或者等编译通过后,再手动用arm-poky-linux-gnueabi-strip命令裁剪,这里不过多展开。
tuo@ncurses-6.2$ ./configure $CONFIGURE_FLAGS --disable-stripping --prefix=/home/tuo/sdb1/ncurses-6.2/build --with-shared
配置成功后的输出:
4、编译,make -j4,编译成功后输出:
5、make install
由错误日志
/opt/fsl-imx-fb/4.1.15-2.1.0/sysroots/x86_64-pokysdk-linux/usr/bin/tic: 1: /opt/fsl-imx-fb/4.1.15-2.1.0/sysroots/x86_64-pokysdk-linux/usr/bin/tic: Syntax error: word unexpected (expecting ")")
? tic could not build /usr/share/terminfo
可知:tic命令格式不对,无法执行,这里要用系统自带的tic(x86),而不是交叉编译器的tic命令(arm)
PC中包含arm平台和本机x86平台的tic命令
查看环境变量
tuo@ncurses-6.2$ echo $PATH
/opt/fsl-imx-fb/4.1.15-2.1.0/sysroots/x86_64-pokysdk-linux/usr/bin:/opt/fsl-imx-fb/4.1.15-2.1.0/sysroots/x86_64-pokysdk-linux/usr/sbin:/opt/fsl-imx-fb/4.1.15-2.1.0/sysroots/x86_64-pokysdk-linux/bin:/opt/fsl-imx-fb/4.1.15-2.1.0/sysroots/x86_64-pokysdk-linux/sbin:/opt/fsl-imx-fb/4.1.15-2.1.0/sysroots/x86_64-pokysdk-linux/usr/bin/../x86_64-pokysdk-linux/bin:/opt/fsl-imx-fb/4.1.15-2.1.0/sysroots/x86_64-pokysdk-linux/