如何从stdin编译代码?

BЈо*_*вић 13 c++ linux gcc

代码很简单:

test$ cat test.cpp

int main()
{
}
Run Code Online (Sandbox Code Playgroud)

有没有办法编译来自标准输出的代码?

我试过这个:

cat test.cpp | g++ -
Run Code Online (Sandbox Code Playgroud)

和一些变化,但没有产生可执行文件.


只是一些澄清.我有一个程序预处理文件,并生成另一个我想编译的文件.我想过不创建这个中间文件,而是直接生成目标文件.

dev*_*ull 20

编译器可能会告诉你:

-E or -x required when input is from standard input
Run Code Online (Sandbox Code Playgroud)

尝试

cat test.cpp | g++ -x c++ -
Run Code Online (Sandbox Code Playgroud)

  • 是的,它告诉我,但它没有告诉我把 c++ 放在后面。添加c ++后它可以工作 (3认同)
  • @H2CO3 错误消息根本没有帮助(如果您不提供语言)。此外,'-' 必须在末尾。尝试在 g++ 文档中找到此类详细信息 (3认同)
  • @BЈовић在这些情况下,您应该阅读将要使用的特定编译器标志的文档.记录`-x`以要求语言作为其参数. (2认同)