Вопрос

Я ищу параметр gcc , который заставит его читать исходный файл из стандартного ввода, главным образом, чтобы я мог сделать что-то подобное для генерации объектного файла из инструмента, такого как < code> 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. -x c говорит, что это C-код.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top