2013-07-30 3 views
10

Код довольно прост:Как скомпилировать код из stdin?

test$ cat test.cpp 

int main() 
{ 
} 

Есть ли способ, чтобы скомпилировать код, который исходит от стандартного вывода?

Я попытался это:

cat test.cpp | g++ - 

и некоторые вариации, но ни один не произвел исполняемый файл.


Просто некоторые разъяснения. У меня есть программа, которая предварительно обрабатывает файл и создает другой файл, который я хочу скомпилировать. Я думал о том, что не создаю этот промежуточный файл, но вместо этого создаю объектный файл напрямую.

+2

Это stdin, а не stdout. –

+1

Почему люди так заинтересованы в компиляции со стандартного ввода? Трудно ли создать файл и скомпилировать его? –

+1

@ DavidRodríguez-dribeas Мой девиз: пропустите среднего человека :) –

ответ

12

Составитель бы, наверное, сказал вам:

-E or -x required when input is from standard input 

Попробуйте

cat test.cpp | g++ -x c++ - 
+0

Да, мне сказали, но он не сказал, чтобы поставить C++ после. После добавления C++ он работает –

+2

@ BЈовић В этих случаях вы должны прочитать документацию конкретного флага компилятора, который вы будете использовать. '-x' документирован, чтобы требовать, чтобы язык был его аргументом. –

+0

@ H2CO3 Сообщение об ошибке вообще не полезно (если вы не предоставляете язык). Кроме того, '-' должен быть в конце. Попробуйте найти такие подробности в документации g ++. –

2

Пробовали ли вы это?

$ cat tst.cpp | g++ -x c++ - 

Я только что попробовал это под Cygwin и не имел проблем.

+0

duh ... время, чтобы попробовать, ответили уже. +1 devnull :) – Shlublu

Смежные вопросы