c++ - 在没有文件的情况下编译 C++ 代码

标签 c++ compilation g++

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

主要.cpp:

#include <iostream>

int main(){
    std::cout << "Hello World!\n";
    return 0;
}

我更愿意做类似的事情

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

上一个post从 stackoverflow 显示

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

有效,但我想知道它是如何工作的,如果有一种方法可以做到这一点而不需要通过管道传递内容,我想知道它是如何工作的,并且会更好。

编辑:

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

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

再次感谢您的帮助!

最佳答案

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

works but I would like to know how it works and better yet, if there is a way to do this without the need to pipe the contents.

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

gcc -Wall -o testbinary -xc++ - << EOF
int main(){}
EOF

关于c++ - 在没有文件的情况下编译 C++ 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17702982/

相关文章:

c# - .NET 属性生成 "must declare a body because it is not marked abstract or extern"编译错误

gcc - g++ 4.1.2 与 g++ 4.6 混合

c++ - gcc 是否错过了优化 ctor 初始化列表的机会?

c++ - 在 CMake 中添加 C++0x 支持

c++ - value_comp 和 * 位于迭代器之前

c++ - memcpy vtkPoints 使用 GetVoidPointer 方法

xcode - 添加OCMock会导致Test启动主应用程序,而不是运行测试

c - 如何写宏让跨平台编译更简单?

c++ - 不会删除指针

c++ - 如何在Watch窗口中查看本地类成员的值?