скомпилировать поток данных в C? - PullRequest
6 голосов
/ 07 июля 2011

Возможно ли скомпилировать поток данных вместо компиляции файла .c с помощью gcc?например, возможно ли, что вместо того, чтобы хранить мой код в каком-либо файле xyz.c, я могу напрямую скомпилировать код?

Ответы [ 3 ]

8 голосов
/ 07 июля 2011

Используйте параметры gcc -x и -

$ echo -e '#include <stdio.h>\nmain(){puts("Hello world");return 0;}' | gcc -xc -ogarbage - && ./garbage && rm garbage
Hello world

Команда, состоящая из одной строки, состоит из следующих частей:

echo -e '#include <stdio.h>\nmain(){puts("Hello world");return 0;}' # "source"
|                                                                   # pipe
gcc -xc -ogarbage -                                                 # compile
&&                                                                  # and
./garbage                                                           # run
&&                                                                  # and
rm garbage                                                          # delete
4 голосов
/ 07 июля 2011

Этот может ответить на ваш вопрос, хотя это редко полезно.

1 голос
/ 07 июля 2011

Вы можете создать файл, передать в него код, затем создать другой процесс (то есть компилятор), предоставив ему файл в качестве аргумента.Затем создайте другой процесс (то есть компоновщик), и он создаст для вас исполняемый файл.И, наконец, вы можете запустить этот exe как новый процесс. Но почему?!:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...