Ich versuche eine a C++ Datei auf dem Server zu kompilieren. Ich habe eine Windows 7 64-Bit-Installation zusammen mit Mingw32 C/C++ Compiler auf dem System mit WampServer2.0 (PHP 5.3.0) installiert. Ich habe die env-Variablen bereits auf relative Pfade gesetzt (c: \ MinGW \ bin). Das folgende Stück Code erzeugt keine ausführbare Datei in dem Dest_folder jedoch der Befehl ganz genau ausgeführt wird, wenn von cmd (Eingabeaufforderung) ausgeführt und erzeugt die ausführbareIch kann g ++ über php system() nicht ausführen
<?php
$string = system("g++ -o C:\\wamp\\www\\Dest_folder\\file.exe C:\\wamp\\www\\Dest_folder\\file.cpp", $retval);
echo $retval;
echo $string;
?>
Die Variable $ string sollte die letzte Zeile der kehrt Befehlsausgabe bei Erfolg und FALSE bei Fehler (was in diesem Fall nichts zurückgibt) und die Variable $ retval gibt 1 zurück. Mache ich etwas falsch? Ich habe auch bemerkt, dass jeder erfolgreiche Aufruf von system() (alle anderen Aufrufe außer der g ++ - Kompilierung) 0 als $ retval erzeugt.
Ich habe es schon versucht, es macht keinen Unterschied. – Seeder
@Seeder: Kann 'g ++' von deiner Shell gefunden werden? Geben Sie den gesamten Pfad an. –
Ich habe die Pfad- und Umgebungsvariablen für C: \ MinGW \ bin (mit Windows Powershell) festgelegt. Trotzdem habe ich versucht, den gesamten Pfad anzugeben, funktioniert aber immer noch nicht. Wie gesagt, es funktioniert gut, wenn 'g ++ -o C: \ wamp \ www \ Dest_folder \ file.exe C: \ wamp \ www \ Dest_folder \ file.cpp' von der Eingabeaufforderung aus ausgeführt wird, aber nicht, wenn ich es über das System anrufe (). – Seeder