免费注册 查看新帖 |

Chinaunix

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

看到一篇关于`__ctype_b'的文章,没看懂,请高手解读 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-08-06 20:00 |只看该作者 |倒序浏览
关于link error"straits.h:120: undefined reference to `__ctype_b' "

使用别人的.a ,连接的时候发现错误
straits.h:120: undefined reference to `__ctype_b'.

百度了一下,发现不少人遇到这个问题,觉得贴出来,共享下

原因:
__ctype_b出现在xlocale.h这个文件里面

     21 #ifndef _XLOCALE_H
     22 #define _XLOCALE_H  1
     23
     24 /* Structure for reentrant locale using functions.  This is an
     25    (almost) opaque type for the user level programs.  The file and
     26    this data structure is not standardized.  Don't rely on it.  It can
     27    go away without warning.  */
     28 typedef struct __locale_struct
     29 {
     30   /* Note: LC_ALL is not a valid index into this array.  */
     31   struct locale_data *__locales[13]; /* 13 = __LC_LAST. */
     32
     33   /* To increase the speed of this solution we add some special members.  */
     34   const unsigned short int *__ctype_b;
     35   const int *__ctype_tolower;
     36   const int *__ctype_toupper;
     37 } *__locale_t;
     38
     39 #endif /* xlocale.h */

这个文件只有在旧的libc.a里面才有.所以你在使用旧的编译器编译的库,而自己使用的新的编译器是没有的.
解决:
    找一个新的机器(不同版本的c库)
    先
**@**:/usr/local$ grep xlocale.h /usr/lib/lib*
Binary file /usr/lib/libBrokenLocale.a matches
Binary file /usr/lib/libBrokenLocale.so matches
Binary file /usr/lib/libBrokenLocale_p.a matches
Binary file /usr/lib/libanl.a matches
Binary file /usr/lib/libanl.so matches
Binary file /usr/lib/libanl_p.a matches
Binary file /usr/lib/libc.a matches

OK,重新编译就可以了.
弄了半天,多谢benny和coon,终于搞定了.


引用于:http://blog.donews.com/linlab/archive/2006/03/09/760214.aspx

[ 本帖最后由 jqtony 于 2008-8-6 20:01 编辑 ]

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
2 [报告]
发表于 2008-08-07 12:34 |只看该作者
按照他的意思,换个版本低点的吧。
a文件不一定可以跨平台的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP