打印

2410 开发板上运行可执行文件问题

[复制链接]
2328|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
explor|  楼主 | 2007-9-27 16:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
目标机 linux 2.6.15 交叉编译器 3.4.3,编译好hello的打印程序,复制到2410开发板上不能执行?请教!

相关帖子

沙发
wangkj| | 2007-9-27 16:47 | 只看该作者

ls -al你看看

ldd  hello 看看

使用特权

评论回复
板凳
宇宙飞船| | 2007-9-27 16:55 | 只看该作者

先把主机上的LDD脚本拷过去才能用!

LDD是查看HELLO的关联动态库的,

使用特权

评论回复
地板
explor|  楼主 | 2007-9-27 17:49 | 只看该作者

能具体提示

问楼上的LDD脚本一般在什么目录,刚学这不是很清楚,按照上面提示,做如图:

使用特权

评论回复
5
wangkj| | 2007-9-27 18:10 | 只看该作者

看我的fdisk教学贴,里面有答案

使用特权

评论回复
6
explor|  楼主 | 2007-9-28 08:48 | 只看该作者

问wangkj

你好!你发表的 fdisk教学贴名是什么,论坛不能模糊查找?还有我这个问题怀疑是文件系统有问题。之前用开发商的2.6内核文档中的文件系统下载时,nfs挂载文件系统成功后出现RPC 101 erro 错误,不能进入控制台烧录文件系统,只好用原来2.4的文档中的资料,但也要修改,怀疑改的还有问题的。问:根文件系统和内核版本有什么联系吗?

使用特权

评论回复
7
wangkj| | 2007-9-28 08:53 | 只看该作者

RPC 是nfs 服务器没配置好

kernel加载文件系统,如果kernel没有对应的fs类型,就不能加载。
详细解释太长了,找浙大的那本书好好看看。

fdisk 就在本页面

使用特权

评论回复
8
wangkj| | 2007-9-28 08:54 | 只看该作者

fdisk

https://bbs.21ic.com/club/bbs/list.asp?boardid=35&page=1&t=2695385&tp=%u5982%u4F55%u628Apc%u4E0A%u7684linux%u547D%u4EE4%u79FB%u690D%u8FC7%u6765%u3002%28%u4EE5fdisk%u4E3A%u4F8B%u5B50%29
相关链接:https://bbs.21ic.com/club/bbs/list.asp?boardid=35&page=1&t=2695385&tp=%u5982%u4F55%u628Apc%u4E0A%u7684linux%u547D%u4EE4%u79FB%u690D%u8FC7%u6765%u3002%28%u4EE5fdisk%u4E3A%u4F8B%u5B50%29

使用特权

评论回复
9
宇宙飞船| | 2007-9-28 09:18 | 只看该作者

首先得弄清楚基本的流程步骤,

1。先在主机上用命令:file hello 查看是否已经用了目标板的ARM编译器交叉编译。若果是ARM编译器编译将会有ARM的信息显示。

2。把执行文件拷到目标机上,顺便把LDD脚本也拷一份,

3。启动目标机,加载启动,在目标机下运行ldd hello ,将会看到有关的动态库,少哪个就补那。

这个步骤俺当时可没人教,俺也没发贴问人,自已摸索出来的,只用了半天时间,快吧?只因俺手头上有一本LINUX指令辞典,这一招就传给你这个菜鸟。

注:LDD的存放地址用:whereis ldd  查找就可确定。 
俺的放在主机上的 /usr/bin/ldd

使用特权

评论回复
10
explor|  楼主 | 2007-9-29 16:11 | 只看该作者

真是谢谢各位高手

file hello 看到for linu 2.4的,我目标机上用的是linux 2.6内核的,这样的影响大吗?用的交叉编译器是 gcc-3.4.3  ?

使用特权

评论回复
11
wangkj| | 2007-9-29 16:17 | 只看该作者

内核的版本和应用程序无关

内核的版本通常理论上也和gcc版本无关。内核肯定和glibc无关,但是,应用程序必须和glibc一致。

使用特权

评论回复
12
explor|  楼主 | 2007-9-29 16:51 | 只看该作者

glibc ??

1.我是按照开发板提供的文档中安装交叉编译环境,就是将GCC -3.4.3解压到/usr/local/arm下,再增加环境变量。没有提到glibc,看网上有的交叉编译环境建立很繁琐的,但不知道为什么文档中只是这么做的??
2.上面图提示的 for GNU/LINUX 2.4.17的产生是和编译器有关的?

使用特权

评论回复
13
andante| | 2007-10-9 08:00 | 只看该作者

静态编译hello, 试下看看

如果静态编译,还是同样的问题,这个偶也不清楚什么问题。

如果静态编译,可以执行,说明是所使用的编译器的库版本与rootfs中的库版本不一致,所以才会出现莫名其妙的问题。

建议:保证编译应用程序(包括rootfs)、内核使用的编译器库版本与rootfs中的库版本一致。不一致的话,极有可能会出现莫名其妙的问题。

使用特权

评论回复
14
explor|  楼主 | 2007-10-9 08:57 | 只看该作者

回复

晕,还不知道静态编译怎么实现,请提示一下,谢谢!

使用特权

评论回复
15
andante| | 2007-10-9 12:33 | 只看该作者

修改 Makefile

修改Makefile, 增加 --static

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

51

主题

107

帖子

0

粉丝