Ist es möglich, GCC aus einer Pfeife zu lesen?
-
05-07-2019 - |
Frage
Ich suche eine Option dazu gcc
Dadurch lesen Sie eine Quelldatei aus der Standardeingabe, hauptsächlich, damit ich so etwas tun kann, um eine Objektdatei aus einem Tool wie zu generieren flex
das generiert C -Code (flex
's -t
Option schreibt das generierte C in die Standardausgabe):
flex -t lexer.l | gcc -o lexer.o -magic-option-here
Weil ich mich nicht wirklich um die generierte C -Datei kümmere.
Existiert so etwas oder muss ich temporäre Dateien verwenden?
Lösung
Ja, aber Sie müssen die Sprache mit dem angeben -x
Möglichkeit:
# Specify input file as stdin, language as C
flex -t lexer.l | gcc -o lexer.o -xc -
Andere Tipps
flex -t lexer.l | gcc -x c -c -o lexer.o -
Grundsätzlich sagen Sie, dass der Dateiname - angeben, dass ein Dateiname ist - eine etwas Standardkonvention für die Aussage von "Standardeingabe" ist. Sie möchten auch das -C -Flag, damit Sie nicht verknüpfen. Und wenn GCC aus Standardeingaben liest, müssen Sie ihm sagen, welche Sprache dies mit -x ist. -xc sagt, es ist C -Code.