Gcc Flex-在代码部分定义主要功能

Gcc Flex-在代码部分定义主要功能,gcc,lex,flex-lexer,Gcc,Lex,Flex Lexer,我是个懒汉。 我有一个简单的h.w-读取输入,并根据输入打印一些单词。 我使用的是另一个c&h文件中的哈希表。 这是我的密码: %{ #include <stdio.h> #include "hashtbl.h" #include "hashtbl.c" void add_define( char * str); HASHTBL *my_table; char* get_define(char * str); %} ... ... %% ... ... %% void main(

我是个懒汉。 我有一个简单的h.w-读取输入,并根据输入打印一些单词。 我使用的是另一个c&h文件中的哈希表。 这是我的密码:

%{
#include <stdio.h>
#include "hashtbl.h"
#include "hashtbl.c"
void add_define( char * str);
HASHTBL *my_table;
char* get_define(char * str);
%}
...
...
%%
...
...
%%


void main()
{
my_table = hashtbl_create(100, NULL);
yylex();
hashtbl_destroy(my_table);
}


void add_define( char * str)
{
...
...

}


char* get_define(char * str)
{

...
...

}
%{
#包括
#包括“hashtbl.h”
#包括“hashtbl.c”
void add_define(char*str);
HASHTBL*my_表;
char*get\u define(char*str);
%}
...
...
%%
...
...
%%
void main()
{
my_table=hashtbl_create(100,NULL);
yylex();
hashtbl_destroy(我的表);
}
void add_define(char*str)
{
...
...
}
char*get\u define(char*str)
{
...
...
}
当我试图用-gcc-lllex.yy.c编译它时 我得到一个关于主函数的错误-

“主
main
的多个定义

我知道我可以用-gcc-lex.yy.c-lfl编译它 但是我不能用它


有什么帮助吗?

我不得不删除主功能,并使用其他方法来完成我想做的事情