gcc क्या पाइप से पढ़ने के लिए जीसीसी प्राप्त करना संभव है?




command-line pipe (2)

मैं gcc लिए एक विकल्प की तलाश में हूं जो इसे मानक इनपुट से एक स्रोत फ़ाइल पढ़ेगा, मुख्य रूप से इसलिए मैं ऐसा कुछ ऐसा कर सकता हूं जो ऑब्जेक्ट फ़ाइल उत्पन्न करने के लिए ऐसा कर सकता है जैसे कि flex जो सी कोड उत्पन्न करता है ( flex 's -t विकल्प जेनरेट सी को मानक आउटपुट में लिखता है):

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

क्योंकि मुझे वास्तव में जेनरेट की गई सी फ़ाइल की परवाह नहीं है।

क्या ऐसा कुछ मौजूद है, या क्या मुझे अस्थायी फ़ाइलों का उपयोग करना है?


हां, लेकिन आपको -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 -

असल में आप कहते हैं कि फ़ाइल नाम है - यह निर्दिष्ट करना कि एक फ़ाइल नाम है - 'मानक इनपुट' कहने के लिए कुछ हद तक मानक सम्मेलन है। आप -सी ध्वज भी चाहते हैं ताकि आप लिंक नहीं कर रहे हैं। और जब जीसीसी मानक इनपुट से पढ़ता है, तो आपको यह बताना होगा कि यह किस भाषा के साथ है -x। -एक्ससी का कहना है कि यह सी कोड है।







flex-lexer