-1

有没有办法在 php 文件中执行 makefile?我努力了:

exec('cmd /c "C:\\Program Files\\Microsoft Visual Studio\\VC98\\Bin\\nmake.exe" -f E:\\dev\\temp.mak > process.out 2> process.err < /dev/null &');

但我不认为 makefile 可以这样运行。

4

2 回答 2

1

尝试不同的方法,在 PHP 目录的同一位置创建一个 Windows 批处理文件;

cd C:\"Program Files"\"Microsoft Visual Studio"\VC98\Bin
nmake.exe -f E:\dev\temp.mak > process.out 2> process.err

*将 Zids 评论纳入其中:*

如果您不使用 PHP,您将如何从命令行执行它?– 摆脱

如果上述方法不起作用。通过从 Windows 命令提示符运行该 exe 在线搜索该 exe 的使用情况,然后相应地更改 .batch 文件。*

将此保存为.batch文件,然后从您的 PHP 尝试运行

exec ("filename.bat", $output); 

然后

在简单的 foreach 循环中查看 exec 命令执行的输出

foreach ($output AS $OutputStr)
{
echo $OutputStr."<br>";
}

应该有一些输出,来自我将使用的输出。

于 2012-12-04T19:05:34.577 回答
1

为什么不这样做:

$make = escapeshellarg("C:\Program Files\Microsoft Visual Studio\VC98\Bin\nmake.exe");
$path = escapeshellarg("E:\dev\temp.mak");
exec("start /B {$make} -f {$path} > process.out 2> process.err");
  • start /B将在后台执行您的程序

  • > process.out将标准输出重定向到“process.out”文件

  • 2> process.err将错误输出重定向到“process.err”文件

在这个例子中,process.out每次process.err运行都会被擦除make。为避免这种行为,只需将>符号替换为>>, 文件将被附加。

于 2012-12-04T19:07:57.520 回答