68 votes

Est-il possible d'obtenir que gcc lise un tuyau?

Je suis à la recherche d'une option d' gcc qui permettra de faire lire un fichier source à partir de l'entrée standard, surtout si je pouvais faire quelque chose comme cela pour générer un fichier de l'objet à partir d'un outil comme flex qui génère du code C (flexs' -t option écrit le générés C à la sortie standard):

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

parce que je n'ai pas vraiment de soins sur le générés C fichier.

Fait quelque chose comme cela, ou dois-je utiliser les fichiers temporaires?

83voto

Adam Rosenfield Points 176408

Oui, mais vous devez spécifier la langue à l'aide de l'option -x :

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

21voto

nos Points 254
 flex -t lexer.l | gcc -x c -c -o lexer.o -
 

Fondamentalement, vous dites que le nom de fichier est - Spécifier un nom de fichier est - est une convention assez standard pour dire «entrée standard». Vous voulez aussi le drapeau -c pour ne pas créer de lien. Et quand gcc lit à partir d’une entrée standard, vous devez lui dire quelle langue il utilise avec -x. -xc dit que c'est du code C.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X