我正在使用 Flex 为我的语言开发词法分析器。我想用 C++ 创建解析器,我正在使用我自己的方法。由于词法分析器在 C (Flex) 中,我想分别编译词法分析器 ( gcc -c lex.yy.c -lfl
) 和我的程序 ( g++ -c file1.cc file2.cc ...
),然后将它们链接在一起以创建最终的可执行文件。
特别是,在创建词法分析器之后,我为我的 C++ 程序编写了以下代码:
#include <iostream>
extern int yylex();
int main(int argc, char** argv);
int main (int argc, char** argv) {
yylex();
return 0;
}
但是当我将东西链接在一起时出现链接错误,例如:
g++ main.cc lex.yy.o -lfl
但我总是得到:
/tmp/ccBrHObp.o: In function `main':
main.cc:(.text+0x10): undefined reference to `yylex()'
collect2: ld returned 1 exit status
问题出在哪里?谢谢