有什么方法可以在php文件中执行makefile?我曾尝试:如何在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 &');
但我DONOT觉得这种方式得到的makefile运行。
有什么方法可以在php文件中执行makefile?我曾尝试:如何在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 &');
但我DONOT觉得这种方式得到的makefile运行。
尝试不同的方法来做到这一点,创建一个Windows批处理文件在您的PHP目录相同的地方;
cd C:\"Program Files"\"Microsoft Visual Studio"\VC98\Bin
nmake.exe -f E:\dev\temp.mak > process.out 2> process.err
*结合Zids评论这个:*
你将如何在命令行中执行它,如果你没有使用PHP? - rid
如果上述方法不起作用。通过在Windows命令提示符下运行,在线搜索该exe文件的用法,然后相应地更改.batch文件。 *
保存此作为.batch
文件,然后从你的PHP尝试运行
exec ("filename.bat", $output);
然后
查看由exec命令在一个简单的foreach循环
foreach ($output AS $OutputStr)
{
echo $OutputStr."<br>";
}
进行输出
应该有一些输出,从输出我会与之合作。
为什么不这样做:
$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”文件
在此示例中,每次运行make
时,将删除process.out
和process.err
。为了避免这种行为,只需用>>
代替>
符号,并且会附加文件。
谢谢,你能不能让我知道我可以给makefile的路径? – user1558064
是,已编辑。让我知道如果需要 –
非常感谢!我还可以问:当我使用start/B时,它似乎永远运行,但是当我使用cmd/c时,我立即得到了输出。再次感谢您帮助初学者。另外,你是否也知道如何在Web上输出输出而不是输出文件? – user1558064
你将一些linux命令行混合到那个windows的一个中。或者反之亦然 – 2012-12-04 19:01:36
我给:cmma的“nmake -f Makefile”来构建我的东西。 – user1558064
对不起,请你纠正我的混音?是吗 & ? – user1558064