gpt4 book ai didi

c - 如何处理 lex 的输出?

转载 作者:行者123 更新时间:2023-12-01 23:35:16 25 4
gpt4 key购买 nike

我完全没有编译器方面的背景,开始了“自学”之旅。我正在使用 this 学习 lex教程并将类似这样的内容输入到名为 first.l

的文件中
%%
/* match everything except newline */
. ECHO;
/* match newline */
\n ECHO;

%%

int yywrap(void) {
return 1;
}

int main(void) {
yylex();
return 0;
}

现在我明白 lex 应该生成一个分词器,它只会回显它使用上面的 first.l 文件获得的所有内容。我先跑了

lex first.l

它创建了一个名为 lex.yy.c 的文件。本教程随后给出了更多示例并跳转到 yacc。有人能告诉我可以用 lex 生成的 lex.yy.c 文件做什么吗?我的想法是我现在有了一个分词器,但我现在如何将这个文件编译成二进制文件呢?使用 gcc?

最佳答案

是的,使用 GCC。你可能想做这样的事情:

gcc -c file1.c
gcc -c file2.c
gcc -o result file1.o file2.o

GCC 的 -c 标志告诉它不要链接,而是在生成目标文件后停止。编译完所有文件后,您可以通过将它们全部传递给 gcc 将它们链接在一起。

因此在您的情况下,您只需继续编译 lex 生成的输出文件以获取二进制文件:

gcc -o output lex.yy.c

关于c - 如何处理 lex 的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4754982/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com