Написание сценария в программе для написания и компиляции кода - PullRequest
0 голосов
/ 11 июля 2020

Я хочу иметь возможность передать строку с кодом C ++, скомпилировать, а затем выполнить код в коде C ++.

Например:

string code = "#include.... int main() {" \
              "std::cout << \"hello, world\" << std::endline;\n";

obj = compile(code);
execute(obj);

Я бы хотел что-то вроде Я планировал создать базовый c язык сценариев, который преобразуется в c ++, а затем c ++ компилируется и запускается.

1 Ответ

0 голосов
/ 11 июля 2020

Существуют разные команды для выполнения в разных оболочках. Например, для Unix требуется $ ./program, PowerShell требуется > ./program (как .exe), CMD ничего не требует (просто > program).

#include <iostream>
#include <fstream>

int main(int argc, char **argv) {
    std::string c = argv[1];
    std::string fileName = c + ".cpp";

    std::ofstream write(fileName.c_str());
    std::string compile = "";

    const char *program =
        "#include <iostream>\n" \
        "int main(void) {\n" \
        "    std::cout << \"Hello World!\";\n" \
        "    return 0;\n" \
        "}";

    // designed for Windows Command Prompt
    compile = "g++ -o " + c + ' ' + fileName + " && " + c;

    write << program << std::endl;
    write.close();

    system(compile.c_str());
    
    return 0;
}
...