我想在服务器上编译一个C++文件。我在运行WampServer2.0(php 5.3.0)的系统上安装了Windows 7 64位安装以及mingw32 c/C++编译器。我已经将env变量设置为相对路径(c:\ MinGW \ bin)。下面的代码段中不产生任何可执行在DEST_FOLDER,但是命令运行从CMD(命令提示)被执行时非常清楚,并产生可执行无法通过php系统执行g ++()
<?php
$string = system("g++ -o C:\\wamp\\www\\Dest_folder\\file.exe C:\\wamp\\www\\Dest_folder\\file.cpp", $retval);
echo $retval;
echo $string;
?>
的$字符串变量应返回的最后一行命令输出成功,失败时失败(在这种情况下不返回任何东西),$ retval变量返回1.我做错了什么?另外我注意到,每次成功的system()调用(除g ++编译外的所有其他调用)都会产生0作为$ retval。
我已经试过了,它没有任何区别。 – Seeder 2012-03-26 00:12:13
@Seeder:你的shell可以找到'g ++'吗?指定整个路径。 – 2012-03-26 00:16:03
我确实为C:\ MinGW \ bin设置了路径和环境变量(使用Windows PowerShell)。尽管如此,我通过指定整个路径尝试尝试,但仍然无法正常工作。正如我所说的,当从命令提示符执行'g ++ -o C:\ wamp \ www \ Dest_folder \ file.exe C:\ wamp \ www \ Dest_folder \ file.cpp'时,它可以正常工作,但是当我使用system )。 – Seeder 2012-03-26 00:28:23