lixiaogang11021 发表于 2010-04-13 11:16

Illegal instruction?怎么回事儿这是?

i have mounted /nfs in PC into /mnt/nfs in target board.
When i type ./appweb -f appweb.conf, i met this error: $ ./appweb -f appweb.conf

default:1 main Error: Security risk, directory /mnt/nfs is writable by others Illegal instruction
复制代码什么意思呢?目标板上的/mnt/nfs的访问权限设置有问题?谢谢各位老师!!

Security risk的问题解决了,但是后面的Illegal instruction还是有。也是现在才知道,原来这是两个错误,一个是Security risk,一个是Illegal instruction。

我把一个用上位机编译好的hello_world文件发送到目标板的/nfs里面,然后执行./hello_world,结果没问题,正常执行。为什么同样是编译好的appweb就会是Illegal instruction呢?其他错误还有思路去解决,这到底是什么错误呢?

那么在什么情况下linux会提示Illegal instruction呢?谢谢各位老师,前辈!!

lixiaogang11021 发表于 2010-04-13 18:08

本帖最后由 lixiaogang110217 于 2010-04-13 18:17 编辑

我用file命令查了一下appweb,说是动态链接的。如果真是动态链接的出现Illegal instruction就能解释了,可是我编译appweb的时候用的是--enable-static啊,怎么还是动态的呢?奇了怪咧!!--enable-static不起作用?
听一人说,我又用ldd命令查了一下appweb,又说是not a dynamic executable,真是闹不清咧!

lixiaogang11021 发表于 2010-04-14 02:31

我想装上GDB调试器看看到底是哪儿错了,可是编译好gdbserver,烧到目标板上要开启gdbserver的时候illegal instruction又来了。和以前一样没有任何其他提示,就单单这么一句illegal instruction.似乎我的板子只能执行hello_world,复杂点儿的程序都是illegal instruction? 是不是内核出问题了?如果是,是什么问题呢?我从来都没怀疑过内核啊,因为这是公司做好的开发板啊,我只是搞搞应用而已。

welcome_qjf 发表于 2010-04-14 11:27

你对比一下程序的编译参数的差别

lixiaogang11021 发表于 2010-04-14 13:47

回复 4# welcome_qjf


    您的意思是,编译内核时的编译器和我编译应用程序的编译器是不一样的?哎呀,问题很有可能就是因此而起!谢谢。

lixiaogang11021 发表于 2010-04-14 22:53

回复 5# lixiaogang11021


   这次我用同一个版本的交叉编译器编译了内核和应用程序。结果还是一样的,除了hello_world可以正常在ARM板上运行外,启动其他的应用程序时都显示是illegal instruction. 启用GDBserver也是illegal instruction。调试也没法调。hello_world为什么就可以呢?到底哪里不同呢?5天了,卡在这儿了。

welcome_qjf 发表于 2010-04-16 15:02

我的意思是你编译应用程序的参数和编译hello_world的参数有没有差别

cliffordl 发表于 2013-04-11 11:35

回复 7# welcome_qjf


    你直接把参数列出来不就行了么。
页: [1]
查看完整版本: Illegal instruction?怎么回事儿这是?