免费注册 查看新帖 |

Chinaunix

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

[开发环境] 静态库与动态库 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-03-21 08:58 |只看该作者 |倒序浏览
交叉编译glibc时出现下面错误:
/opt/222/cross/embedded-toolchains/tool-chains/lib/gcc/mips-linux/4.3.3/../../../../mips-linux/bin/ld: cannot find -lgcc_eh
collect2: ld 返回 1
make[2]: *** [/opt/222/cross/embedded-toolchains/build-dir/build-glibc-2.9/iconv/iconvconfig] 错误 1
make[2]: Leaving directory `/opt/222/cross/embedded-toolchains/src-dir/glibc-2.9/iconv'
make[1]: *** [iconv/others] 错误 2
make[1]: Leaving directory `/opt/222/cross/embedded-toolchains/src-dir/glibc-2.9'
make: *** [all] 错误 2
这里是缺少静态链接库,还是动态链接库,有点糊涂了,问题该怎样解决,希望得到大虾的指点!

论坛徽章:
1
15-16赛季CBA联赛之新疆
日期:2017-03-09 12:33:45
2 [报告]
发表于 2014-03-21 10:21 |只看该作者
回复 1# pisen-奇迹


    在默认情况下是动态库。但要看你的命令行是什么,如果有-static 那就是静态的了。或者没有找到动态库,也会去查找静态库的。

论坛徽章:
0
3 [报告]
发表于 2014-03-21 12:15 |只看该作者
回复 2# jeppeter

书上不是说编译的时候不会链接到动态库的么?我有点晕了。。



   

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:58:11
4 [报告]
发表于 2014-03-21 19:26 |只看该作者
本帖最后由 arm-linux-gcc 于 2014-03-22 15:46 编辑

你为毛要自己去编译glibc?
直接用buildroot来制作一个全套的toolchain多方便

论坛徽章:
0
5 [报告]
发表于 2014-03-25 11:49 |只看该作者
这个要等大侠出来帮你了。

论坛徽章:
0
6 [报告]
发表于 2014-03-25 19:12 |只看该作者
回复 1# pisen-奇迹

只是连接的时候,找不到libgcc_eh这个库,是不是静态库或动态库并没有关系。如果是动态库,在应用执行时会加载检查符号的。但在编译时,应该是无论同名的静态库或动态库,都没找到。
   

论坛徽章:
0
7 [报告]
发表于 2014-03-27 12:23 |只看该作者
这是一个静态库,全名为libgcc_eh.a,属于gcc stub lib一部分,只有静态编译时候才需要。
在使用预编译的gcc在编译glibc时候,此错误可以忽落,因为实质上glibc并没有使用到libgcc_eh里面的实际内容,是gcc找不到这个库。解决办法:
1. 重新编译下gcc让它产生这个库,(真正正确的libgcc_eh是在完成glibc编译后,第二次编译gcc时产生的)
2. 直接将libgcc.a copy一下,将copy后libgcc.a改名字为libgcc_eh.a就可以了,不会影响你的编译。因为第二次编译gcc这个库会被新产生的正确的libgcc_eh所覆盖
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP