私は共有ライブラリ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 (未定義のシンボル) と表示されます。何が問題なのか途方に暮れています。