在C中编译数据流?

时间:2011-07-07 14:24:24

标签: c stream compilation

是否可以编译数据流而不是使用gcc编译.c文件?例如,我可以直接编译代码,而不是将我的代码存储在任何xyz.c文件中吗?

3 个答案:

答案 0 :(得分:8)

使用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

答案 1 :(得分:4)

This可能会回答你的问题,但它很少有用。

答案 2 :(得分:1)

您可以创建一个文件,将代码流入其中,然后创建另一个进程(即编译器),将该文件作为参数。然后创建另一个进程(即链接器),它将为您创建一个exe。最后,您可以将该exe作为新进程启动。 但为什么?!:)