Скомпилируйте строку кода C

Действительно от вопроса о стене здесь, но существует ли способ скомпилировать строку кода C в GCC без какого-либо носителя для содержания той строки (например, исходный файл)?

Что-то вроде:

$ gcc "#include <stdio.h> int main( void ){ printf('hello world'); return 0;}" -o test

Чувствует себя действительно грязным, но было бы действительно хорошо, если бы был некоторый простой способ сделать тот тип вещи.

6
задан Josh Sandlin 18 January 2010 в 04:21
поделиться

2 ответа

Для небольших команд и личных проектов, всякий раз, когда GEM отлично. Но если у вашей компании команда OPS отдельно от команды разработки, она может не быть идеальной.

На моей последней работе команда OPS должна была видеть, как Cron мы устанавливаем, чтобы они могли быть уверены, что у него не будет никаких побочных эффектов для системы. Так что решение DSL не собирается работать. Но мы (разработчики) хотели, чтобы скрипты CRON в управлении версиями.

Так что для компромисса мы проверили текстовые файлы с RAW CRON, аналогичны этому:

10 0 * * * cd /path/to/rails/app && rake RAILS_ENV=production admin:rss

, и мы добавили шаг к сценарию CaPistrano, который установил это в Crontab в рамках развертывания.

-121--2337646-

Если вы используете - - в качестве входного файла в командной строке GCC гласит из стандартного ввода. Поскольку нет никакого удаления имени файла GCC, не может использовать, чтобы узнать язык, который должен быть скомпилирован, он должен быть указан с флагом -x :

$ gcc -x c -o tst - <<EOF
> #include <stdio.h>
> int main(void) {
>   printf("Hello world\n");
> }
> EOF
$ ./tst
Hello world
8
ответ дан 8 December 2019 в 17:21
поделиться

Я признаюсь, что иногда подчеркивает код и использование:

(cat preamble.hpp; xsel) | g++ -x c++ - && ./a.out

те же произведения с «-x C» для C.

6
ответ дан 8 December 2019 в 17:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: