我有一个使用共享库构建的主文件,它libhtml
是libhtml
使用另一个共享库构建的libctpe
。当我构建两者时,我没有收到任何错误/警告libctpe
,libhtml
但是当我链接主文件时,libhtml
我收到以下错误,我收到以下警告:
/home/krajput/parser/back_up/15_5/parser/ctpe/libctpe.so
: 未定义的引用
state_info_table
现在,Libctpe 包含文件 ctpe.c,其中“ state_info_table
”是结构指针的全局数组,全局声明,然后使用函数定义create_state_table()
。
State_t **state_info_table;
void create_state_table() {
int i;
State_t **state_info_table = malloc(state_table_size *sizeof(State_t*));
if(!state_info_table) {
printf("\nMemroy Allcoation failed\n");
}
for ( i=0;i<state_table_size;i++) {
state_info_table[i] = malloc(1*sizeof(State_t*));
state_info_table[i] = NULL;
}
return;
}
除了这个文件,我没有在任何地方使用这个数组。另外,当我尝试做“ nm libctpe.s
”时,它显示state_info_table
为 U(未定义的符号)。我不知道问题可能是什么。