我在我的项目中使用文件“wbchar.h”,但是当我编译它时,这个错误出现在is_basic函数中:
对
的未定义引用is_basic_table
错误位于此文件的第438行 http://www.koders.com/c/fid74476D4B812D46517B68E4BA9E3F52F4EB82F2CD.aspx
为什么会出现此错误?
编辑:“mbchar.h”
答案 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"
获得该信息,但请注意可能会出现更多冲突。