编译没有文件的C ++代码

Yuu*_*uta 4 c++ compilation g++

我正在尝试使用您的标准g ++编译器来编译一些C ++代码。但是,不是从文件编译:

main.cpp:

#include <iostream>

int main(){
    std::cout << "Hello World!\n";
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我喜欢做类似的事情

g++ ... "#include <iostream>\n int main(){ std::cout << \"Hello World!\n\"; return 0;}"
Run Code Online (Sandbox Code Playgroud)

stackoverflow的上一篇文章显示

echo "int main(){}" | gcc -Wall -o testbinary -xc++ -
Run Code Online (Sandbox Code Playgroud)

可以,但是我想知道它是如何工作的,并且更好,如果有一种方法不需要管道内容。

编辑:

我正在执行运行时代码生成,我需要生成一个共享库并加载创建的函数。

我以为会有一个标志告诉编译器“嘿,我给你源代码而不是文件”。

再次感谢您的帮助!

πάν*_*ῥεῖ 5

echo“ int main(){}” | gcc -Wall -o testbinary -xc ++-

可以,但是我想知道它是如何工作的,并且更好,如果有一种方法不需要管道内容。

或者,您可以说(例如在shell脚本中):

gcc -Wall -o testbinary -xc++ - << EOF
int main(){}
EOF
Run Code Online (Sandbox Code Playgroud)