我在Windows机器上使用PHP.我也使用Dev C++.我可以使用以下命令在CMD上完美地编译.cpp文件:
g++ hello.cpp -O3 -o hello.exe
Run Code Online (Sandbox Code Playgroud)
现在我要做的是使用php system()函数运行相同的命令,所以它看起来像这样:
system("g ++ c:\ wamp\www\grader\hello.cpp -O3 -o C:\ wamp\www\grader\hello.exe");
但它没有编译.我迷路了,请告诉我我错过了什么?
我也抬头看了这个问题,这正是我需要的,但我找不到一个有用的解决方案,我的情况:
使用PHP exec命令.
echo exec('g++ hello.cpp -O3 -o hello.exe');
Run Code Online (Sandbox Code Playgroud)
应该管用.
在PHP中有一整套不同的exec和系统命令,请看这里:
http://www.php.net/manual/en/ref.exec.php
Run Code Online (Sandbox Code Playgroud)
如果要将输出转换为变量,请使用:
$variable = exec('g++ hello.cpp -O3 -o hello.exe');
Run Code Online (Sandbox Code Playgroud)
如果这不起作用,那么请确保您的路径中有可用的g ++,并且您已经足够的权限登录以允许它执行.
您可能还发现它失败了因为PHP基本上是由您的Web服务器执行的(除非您还从cmd提示符运行PHP),并且Web服务器用户ID可能没有对G ++尝试创建的文件夹的写访问权限输出文件.
暂时授予输出文件夹中"Everybody"的写入权限将验证是否是这种情况.