主题 : 2.6.32.2内核,想要运行app-mem但是提示./app-mem:not found 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 13392
精华: 0
发帖: 7
金钱: 35 两
威望: 7 点
综合积分: 14 分
注册时间: 2010-01-23
最后登录: 2011-08-24
楼主  发表于: 2010-04-05 23:55

 2.6.32.2内核,想要运行app-mem但是提示./app-mem:not found

兄弟们,有问题想请教,2.6.32.2内核,我编译好的程序app-mem下载到mini2440上,用./app-mem 运行(之前有先加载需要的模块模块,然后创建设备文件),怎么老是./app-mem:not found。

我保证文件名是正确的,而且同样的程序拿到另外一块板子上是能正常运行的,另一块板子用的内核是2.6.12

急等,有知道的朋友给回复一下,先谢谢了
奔跑的蜗牛……
级别: 侠客
UID: 11357
精华: 4
发帖: 69
金钱: 565 两
威望: 125 点
综合积分: 218 分
注册时间: 2009-12-04
最后登录: 2013-04-05
1楼  发表于: 2010-04-24 15:28
不好意思。我今天也遇到这个问题了,所以刚刚查到您的帖子。
出现这个问题的原因是应用程序相关的库和启动加载器无法找到

现在我总结一下两种不同的解决方案。

第一种:
静态编译该程序

[root@localhost memdev]# arm-linux-gcc -static -O2 app-mem.c -o app-mem
但是这样做的问题是应用程序会变得很大。由原来的5K变为了500K。

第二种:
将Glibc相应的库文件和一些软链接拷贝到你做的rootfs上
,具体都需要拷贝哪些我还没有研究透彻,至少加载器启动器及其软链接得拷上去,ld-2.8.so和ld-linux.so.3。还有libc*.so*得拷贝上。都拷贝到你要制作的根文件系统里的/lib/目录下。
另外把你需要的库都拷上去,例如,如果需要数学库就考上去libm.so*相关的,图片libpng.so*,线程libpthread-*.so*等等。

注:*表示不同的版本,根据需要拷贝你所需要的版本。
Continue Study of Embedded Linux Development and Application

奔跑的蜗牛……