环境: hpunix11 redhet linux e3 Informix 9.4 Informix client sdk 2.81 uc3 在以上环境中将unix上的代码移植到redhat linux上时,会发生编译错误: undefined reference to _ctype_b undefined reference to _ctype_toupper undefined reference to _ctype_tolower 这是由于redhat linux和高版本的informix esqlc 库文件不兼容造成的,要解决该问题,将以下代码命名为“linuxpatch.c”,在要移植的代码中包含该文件,并在main函数中调用ctSetup函数,就可以通过编译了。 #include <ctype.h>
__const unsigned short int *__ctype_b; __const __int32_t *__ctype_tolower; __const __int32_t *__ctype_toupper;
void ctSetup() { __ctype_b = *(__ctype_b_loc()); __ctype_toupper = *(__ctype_toupper_loc()); __ctype_tolower = *(__ctype_tolower_loc()); }
|