以下是我的C++程序:

main.cpp

#include <iostream>
#include <fstream>

using namespace std;

int main() {

    ofstream fileWriter;
    fileWriter.open ("firstFile.cpp");
    fileWriter << "#include <iostream>" << endl;
    fileWriter << "int main() {" << endl;
    fileWriter << "\tstd::cout << \"hello world\" << std::endl;" << endl;
    fileWriter << "\treturn 0;" << endl;
    fileWriter << "}" << endl;
    fileWriter.close();

    return 0;
}

执行上述程序后,它将创建一个名为“firstFile.cpp”的文本文件,其中包含以下代码:

firstFile.cpp
#include <iostream>
int main() {
    std::cout << "hello world" << std::endl;
    return 0;
}

执行该命令时,将在屏幕上打印“hello world”。

因此,我想在main.cpp文件中添加代码行,要求GCC编译刚创建的新firstFile.cpp。

我在Ubuntu和Windows平台上都使用GNU gcc。

可以从对编译器的调用中获取任何错误代码吗?如果不是为什么。

最佳答案

使用std::system命令并不太困难。另外raw string literals允许我们插入多行文本,这对于键入程序部分很有用:

#include <cstdlib>
#include <fstream>

// Use raw string literal for easy coding
auto prog = R"~(

#include <iostream>

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

)~"; // raw string literal stops here

int main()
{
    // save program to disk
    std::ofstream("prog.cpp") << prog;

    std::system("g++ -o prog prog.cpp"); // compile
    std::system("./prog"); // run
}

输出:
Hello World!

关于c++ - 如何以编程方式要求编译器在C++中编译文件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36150706/

10-11 23:08
查看更多