是否有可能获得GCC从管道读?是否有可能获得GCC从管道读?(Is it possible to g

2019-05-13 11:00发布

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

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

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

难道这样的事情存在,还是我不得不使用临时文件?

Answer 1:

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

# Specify input file as stdin, language as C
flex -t lexer.l | gcc -o lexer.o -xc -


Answer 2:

flex -t lexer.l | gcc -x c -c -o lexer.o -

基本上,你说的那个文件名是 - 指定一个文件名是 - 是说“标准输入”有点标准约定。 你也想-c标志,所以你没有做链接。 当GCC从标准输入读取,你必须告诉它这是-x什么语言。 -xc说,这是C代码。



文章来源: Is it possible to get gcc to read from a pipe?