主题 : Illegal instruction,困扰了一周了,尝试了各种方法,恳请指导帮忙解决,谢谢!! 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 80961
精华: 0
发帖: 23
金钱: 115 两
威望: 23 点
贡献值: 0 点
综合积分: 46 分
注册时间: 2012-11-01
最后登录: 2015-09-05
楼主  发表于: 2015-07-30 16:42

 Illegal instruction,困扰了一周了,尝试了各种方法,恳请指导帮忙解决,谢谢!!

请教下论坛里的各位高手,我用的是unbutu12.0系统, 友善之臂提供的交叉编译器arm- linux-gcc4.5.1,tiny6410的板子,交叉编译简单的hello程序把生成的可执行下载到开发板是可以运行的即在终端上显示了字符串,交叉编译触摸屏的程序tslib,生成的四个文件夹下载到开发板配置好开发板上的环境变量,运行其中的bin文件夹中的ts_test可执行文件,能在开发板上显示触摸屏的测试界面。
可是!!同样的,我对qt4.7.0和qt4.7.1编译生成的嵌入式版本的qt文件夹,将其下载到开发板,配置好环境变量,执行其中demos或者examples文件夹里的可执行文件,却显示Illegal instruction,请问这是怎么回事?我已经用file和ldd命令检查了 对应的.o文件和可执行文件的属性,都是属于arm架构的,和可以执行的hello文件是一样的,除了最后一个not stripped/stripped 属性不同之外。
我也按照网上对qt源代码中的qmake进行修改,设置成-march=armv6,配置也是按照友善之臂开发板的指示设置的,编译的时候报错“undefined reference ...‘ts_read’”,我修改了qt源代码中的linux.conf,加上了-lts,最后编译通过并顺利安装,移植到板子上后且检查了可执行文件的权限都是777的,无论是开发板上已经提供的qte4.7.0里的可执行文件还是我编译好的qt-4.7.0和4.7.1都显示illegal instruction,实在不知道该肿么办了。
还有个疑问是我在开发板子上用uname -a 命令显示tiny6410为“........armv6l,.......”,而不是armv6,这是怎么回事?