免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 26428 | 回复: 7
打印 上一主题 下一主题

[C] 报/lib/ld-linux.so.2 文件找不到,请问什么原因 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-10-30 15:28 |只看该作者 |倒序浏览
交叉编译.c 文件已经通过,但是生产可执行文件链接.o 文件的时候,报/lib/ld-linux.so.2 文件找不到,请问什么原因

sh4-linux-gcc -c   -DMWPIXEL_FORMAT=MWPF_TRUECOLOR0888 -DHAVE_FILEIO -DHAVE_FNT_SUPPORT=1 -DFNT_FONT_DIR="\""fonts/bdf""\" -DHAVE_PCF_SUPPORT=1 -DPCF_FONT_DIR="\""fonts/pcf""\" -DHAVE_PCFGZ_SUPPORT=1 -DHAVE_BMP_SUPPORT=1 -DHAVE_GIF_SUPPORT=1 -DHAVE_PNM_SUPPORT=1 -DHAVE_XPM_SUPPORT=1 -DHAVETEXTMODE=1 -DTHREADSAFE=1 -DFBVGA=1 -DNONETWORK=1 -DERASEMOVE=1 -DUPDATEREGIONS=1 -DDEBUG=1 -DLINUX=1 -DUNIX=1  -O  -I. -I/home/zy/microwin/microwinsh4/src/include -Wall -Wpointer-arith -ggdb  -o mdemo.o mdemo.c
sh4-linux-gcc  -O  -I. -I/home/zy/microwin/microwinsh4/src/include -Wall -Wpointer-arith -ggdb   -L/home/zy/microwin/microwinsh4/src/lib -L/opt/STM/sh4/target-2.2/usr/lib -L/opt/STM/sh4/target-2.2/lib mdemo.o -o /home/zy/microwin/microwinsh4/src/bin/mdemo -lmwin -lmwinlib -lmwengine -lmwdrivers -lmwfonts -lmwin -lmwimages -lm  /opt/STM/sh4/target-2.2/usr/lib/libz.a  
/opt/STM/STLinux-2.2/devkit/sh4/lib/gcc/sh4-linux/4.1.1/../../../../sh4-linux/bin/ld: skipping incompatible /lib/ld-linux.so.2 when searching for /lib/ld-linux.so.2
/opt/STM/STLinux-2.2/devkit/sh4/lib/gcc/sh4-linux/4.1.1/../../../../sh4-linux/bin/ld: cannot find /lib/ld-linux.so.2
collect2: ld returned 1 exit status

论坛徽章:
0
2 [报告]
发表于 2008-10-30 15:46 |只看该作者
那你看过这个文件到底有没有呢?没有的话有没有高一点的版本类似linux.so.2.****的呢,有的话试着做个软链接

论坛徽章:
0
3 [报告]
发表于 2008-10-30 16:00 |只看该作者

回复 #2 xiyoubbs 的帖子

/lib/ld-linux.so.2 文件肯定是存在的,使用 gcc 编译时没有问题的,但是使用交叉编译器编译的时候就说不匹配了

论坛徽章:
0
4 [报告]
发表于 2008-10-31 16:01 |只看该作者
我印象中好像遇到过这个问题,当时我交叉编译时候时直接拷贝别人机子上编译好的库文件,然后交叉编译失败,被逼无奈之下我自己在我机器上交叉编译了一遍,然后用我自己生成的库文件交叉编译时就没有问题了,这只是我曾经遇到过的问题,希望对你有所启发

论坛徽章:
0
5 [报告]
发表于 2008-10-31 19:10 |只看该作者
原帖由 lingdu1982 于 2008-10-30 15:28 发表
交叉编译.c 文件已经通过,但是生产可执行文件链接.o 文件的时候,报/lib/ld-linux.so.2 文件找不到,请问什么原因

sh4-linux-gcc -c   -DMWPIXEL_FORMAT=MWPF_TRUECOLOR0888 -DHAVE_FILEIO -DHAVE_FNT_SUPP ...



/lib/ld-linux.so.2 是个连接器,程序运行时也需要链接器的。你所玩的是跨平台的运行二进制程序,这个就需要两个平台能够二进制兼容,这是个很痛苦的话题。

建议你不要动主意去考虑从编译系统中直接搞ld-linux.so.2过来,因为很多平台在实现的时候是把ld-linux.so.2写死在内核里的,你通过修改核外环境变量达不到你想要的效果。

如果你想让你的程序能平滑运行:

1、到目标平台上重新编译你的程序(推荐)。
2、把你的编译环境做到和目标运行环境一致。

论坛徽章:
0
6 [报告]
发表于 2008-10-31 21:28 |只看该作者
原帖由 samon_fu 于 2008-10-31 19:10 发表



/lib/ld-linux.so.2 是个连接器,程序运行时也需要链接器的。你所玩的是跨平台的运行二进制程序,这个就需要两个平台能够二进制兼容,这是个很痛苦的话题。

建议你不要动主意去考虑从编译系统中直接搞 ...

问下,这个是不是因为是交叉编译,所以ld_Linux.so.2也应该有其目标平台版本?

论坛徽章:
0
7 [报告]
发表于 2008-10-31 21:41 |只看该作者
我现在回复
然后在我的回复下面有一个什么高手blog的
你点开
里面有一篇关于linux通用错误的解决方法
你看看
就是说这个的

论坛徽章:
0
8 [报告]
发表于 2008-10-31 22:51 |只看该作者
原帖由 dodolo0k 于 2008-10-31 21:28 发表

问下,这个是不是因为是交叉编译,所以ld_Linux.so.2也应该有其目标平台版本?



很多时候ld和C库都是有很强的关系的。在linux下升级C库时会碰到。

所以我觉得你做交叉编译的时候,最好把编译环境和运行环境搞成一样,要不然出了问题都不好找原因,没准你搞了n久后,发现把平台版本调成一致才能解决。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP