我正在寻找一个选项, gcc
,这将使它读取从标准输入源文件,主要是让我可以做这样的事情,以生成像工具的对象文件flex
生成C代码( flex
的-t
选项生成的C写到标准的输出):
flex -t lexer.l | gcc -o lexer.o -magic-option-here
因为我真的不关心生成的C文件。
难道这样的事情存在,还是我不得不使用临时文件?
我正在寻找一个选项, gcc
,这将使它读取从标准输入源文件,主要是让我可以做这样的事情,以生成像工具的对象文件flex
生成C代码( flex
的-t
选项生成的C写到标准的输出):
flex -t lexer.l | gcc -o lexer.o -magic-option-here
因为我真的不关心生成的C文件。
难道这样的事情存在,还是我不得不使用临时文件?
是的,但你必须使用指定的语言-x
选项:
# Specify input file as stdin, language as C
flex -t lexer.l | gcc -o lexer.o -xc -
flex -t lexer.l | gcc -x c -c -o lexer.o -
基本上,你说的那个文件名是 - 指定一个文件名是 - 是说“标准输入”有点标准约定。 你也想-c标志,所以你没有做链接。 当GCC从标准输入读取,你必须告诉它这是-x什么语言。 -xc说,这是C代码。