68

我正在寻找一个选项gcc,它将使它从标准输入中读取源文件,主要是这样我可以做这样的事情来从flex生成 C 代码之类的工具生成目标文件(flex-t选项写入生成的 C到标准输出):

flex -t lexer.l | gcc -o lexer.o -magic-option-here

因为我并不真正关心生成的 C 文件。

是否存在这样的东西,还是我必须使用临时文件?

4

2 回答 2

83

是的,但您必须使用以下-x选项指定语言:

# Specify input file as stdin, language as C
flex -t lexer.l | gcc -o lexer.o -xc -
于 2009-06-16T20:03:28.250 回答
21
flex -t lexer.l | gcc -x c -c -o lexer.o -

基本上你说文件名是-. 指定文件名是-“标准输入”的某种标准约定。您还需要-c标志,因此您不进行链接。当 GCC 从标准输入中读取数据时,你必须告诉它这是什么语言-x-x c说是C代码。

于 2009-06-16T20:07:10.910 回答