wbchar.h中未定义的引用

时间:2012-02-03 17:42:38

标签: c

我在我的项目中使用文件“wbchar.h”,但是当我编译它时,这个错误出现在is_basic函数中:

  

is_basic_table

的未定义引用

错误位于此文件的第438行 http://www.koders.com/c/fid74476D4B812D46517B68E4BA9E3F52F4EB82F2CD.aspx

为什么会出现此错误?

编辑:“mbchar.h”

2 个答案:

答案 0 :(得分:4)

引发此错误是因为在is_basic_table中声明了wbchar.h,但未定义(因为extern):

extern unsigned int is_basic_table[]; /* At line 433. */

is_basic_table的定义在其他一些源文件中。您必须链接包含is_basic_table定义的对象或将其源代码编译到二进制文件中(我不知道包含is_basic_table定义的源文件是什么。)

答案 1 :(得分:0)

@hmjd是对的。

is_basic_table的定义位于mbchar.c

http://www.koders.com/c/fidE57932491F3B2834B669201F4619CF24BAB86BDE.aspx

#if IS_BASIC_ASCII

/* Bit table of characters in the ISO C "basic character set".  */
unsigned int is_basic_table [UCHAR_MAX / 32 + 1] =
{
  0x00001a00,       /* '\t' '\v' '\f' */
  0xffffffef,       /* ' '...'#' '%'...'?' */
  0xfffffffe,       /* 'A'...'Z' '[' '\\' ']' '^' '_' */
  0x7ffffffe        /* 'a'...'z' '{' '|' '}' '~' */
  /* The remaining bits are 0.  */
};

#endif /* IS_BASIC_ASCII */

常量IS_BASIC_ASCII设置在mbchar.h

您可#include "mbchar.c"获得该信息,但请注意可能会出现更多冲突。