2011年(4)
分类: LINUX
2011-03-17 00:31:02
[issue]
在链接tcpreplay 3.4.3时,遇到无法找到__assert_fail, __ctype_b_loc, __isoc99_sscanf, __strtok_r, __IO_putc等,导致出错
[solution]
对于__ctype_b_loc, __strtok_r, __IO_putc等,需要在makefile中调整uclibc头文件包含路径,即把-I…/uClibc-xxx/include调整在其他包含路劲之前就可以了。
__assert_fail是在assert.h中定义的,在uClibc并没有实现。但即使调整了上述目录还由于定义了LDNETINC,编译时找到的头文件是/usr/include即主机上assert.h,仍旧编译不过,即LDNETINC=-I/usr/include(Makefile会根据这个自动生成,需要改configure)。
__isoc99_sscanf:在config.h中加入#define _GNU_SOURCE来解决。
[commit]
uClibc真是缺斤少两,比不了glibc。。。