管道回声到gcc?

Mas*_*eri 5 c gcc compilation pipe

要从printf("Hello!");终端呼叫C我使用

echo '#include<stdio.h>
void main()
{
printf("Hello!");
}' > foo.c
Run Code Online (Sandbox Code Playgroud)

然后调用gcc foo.c以输出.不幸的是,流水线

echo '#include<stdio.h>
void main()
{
printf("Hello!");
}' | gcc 
Run Code Online (Sandbox Code Playgroud)

没有抱怨没有输入文件.最后,我想有一个剧本,我可以编译C command从终端./script [command].任何建议将不胜感激.

And*_*uib 6

是的,但您必须使用该-x选项指定语言。将输入文件指定为 stdin,将语言指定为 C using -xc如果您希望它是 C++,请使用-xc++)。所以在你的情况下,命令是

echo '#include<stdio.h>
void main()
{
printf("Hello!");
}' | gcc -o output.o -xc -
Run Code Online (Sandbox Code Playgroud)

您可以阅读有关命令行编译器参数的更多信息:请参阅调用 GCC章节。


但是,正如@Basile 所说, 避免处理 C 文件是不值得的查看他的回答以获取更多信息