Is it possible to get GCC to read from a pipe?

Zifre picture Zifre · Jun 16, 2009 · Viewed 22k times · Source

I'm looking for an option to gcc that will make it read a source file from the standard input, mainly so I could do something like this to generate an object file from a tool like flex that generates C code (flex's -t option writes the generated C to the standard output):

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

because I don't really care about the generated C file.

Does something like this exist, or do I have to use temporary files?

Answer

Adam Rosenfield picture Adam Rosenfield · Jun 16, 2009

Yes, but you have to specify the language using the -x option:

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