一,预备知识
交叉编译工具路径在/opt/fsl-imx-x11/3.14.52-1.1.1/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi。
交叉编译工具默认寻找的静态库位置:/opt/fsl-imx-x11/3.14.52-1.1.1/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/lib。
i.MX6的交叉编译工具没有封装好,使用gcc的时候,必须加上命令参数,如下面所示:
arm-poky-linux-gnueabi-gcc -march=armv7-a -mfloat-abi=hard -mfpu=neon -mtune=cortex-a9 --sysroot=/opt/fsl-imx-x11/3.14.52-1.1.1/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi test.c -o test
二,开始编译
1,老规矩,因为gdb依赖libtermcap,所以先编译libtermcap。
这边要注意,需要把在hisi3716上编译过的termcap-1.3.1里的configure拷贝过来,再进行修改。
原因是termcap在configure的时候不会检查交叉编译,在make的时候会recheck,然后修改configure脚本,
生成新的configure。针对i.MX6需要加上后缀的特殊性,我们可以跳过recheck,直接拿新的configure来用。
修改时,把ac_link和ac_compile的定义加上该交叉编译gcc的命令参数。
configure过后,生成Makefile,
修改该Makefile,把CC定义后面加上该交叉编译gcc的命令参数。
make & make install即可。
2,将编译好的libtermcap.a放到交叉编译工具链默认寻找的静态库位置。开始编译gdb,
先修改configure脚本,将ac_link,ac_compile,we_are_ok这三处地方都加上该交叉
编译gcc的命令参数。
执行configure时,加上--disable-werror。
顺利生成Makefile后,修改它,在CC和CXX定义的地方加上该交叉编译gcc的命令参数,
然后make & make install即可。
下面是传送门,需要我上述修改的脚本可以到这里下载哦,
http://download.csdn.net/download/yuhengyue/10105503
祝君好运。