Ich versuche, ein Spiel ähnlich wie code hunt zu schreiben (https://www.codehunt.com/about.aspx) So wie dies funktioniert, ist der Spieler kann eine CPP-Datei ändern, die kompiliert werden und und lief innerhalb des Codes, aber ich habe Probleme, wie man es kompiliert. Ich bin das neueste g ++ Compiler, und das ist, wie ich versuche, dies zu achive:Compiling innerhalb des Codes mit g ++ in Code :: Blöcke
void Builder::build(const char* file){
std::string s = "g++ ";
s += file;
s += " -o test.o";
system(s.c_str());
}
Wo wir den Namen des CPP-Datei zu erhalten, und dieser Code Stück soll test.o bauen Dies ist nur ein Test jetzt, könnte es komplizierter, ich wollte nur testen, ob der Compiler im Code arbeiten, aber ich bekomme diese Fehlermeldung, wenn ich versuche, dies auszuführen:
c:/mingw/bin/../lib/gcc/mingw32/4.9.3/../../../libmingw32.a(main.o):(.text.startup+0xa7):undefined reference to '[email protected]'
collect2.exe: error: ld returned 1 exit status
PATH für mingw gesetzt richtig, ich überprüfte. Ich verwende Windows 8.1, g ++ 4.9.3 und Code :: Blocks.
Sind Sie sicher, dass Sie die Ausgabedatei mit einem '.o' Suffix benennen möchten, wie eine * Objekt * Datei und keine ausführbare Datei? –
Außerdem ist das Ausführen von Code, der vom Benutzer gegeben wird, ein großes Sicherheitsloch, groß genug um eine Saturn V Rakete zu fliegen. –