É possível obter o gcc para ler de um pipe?

Eu estou procurando uma opção para o gcc que fará com que leia um arquivo de origem a partir da input padrão, principalmente para que eu pudesse fazer algo assim para gerar um arquivo de object de uma ferramenta como flex que gera código C ( flex ‘s opção grava o C gerado na saída padrão):

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

porque eu realmente não me importo com o arquivo C gerado.

Existe algo como isso, ou eu tenho que usar arquivos temporários?

Sim, mas você precisa especificar o idioma usando a opção -x :

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

Basicamente, você diz que o nome do arquivo é – Especificando que um nome de arquivo é – é uma convenção padrão para dizer “input padrão”. Você também quer o sinalizador -c para não estar ligando. E quando o gcc lê a input padrão, você tem que dizer qual é o idioma com o -x. -xc diz que é o código C.