標準入力からソースファイルを読み取るgcc
のオプションを探しています。主に、次のようなことを行って、flex
などのツールからオブジェクトファイルを生成できます。 Cコード(flex
's -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
を使用して、これがどの言語かを通知する必要があります。 -x c
はCコードだと言っています。