【发布时间】:2012-02-11 07:34:15
【问题描述】:
当我在php 中使用popen 编译C/C++ 程序时...我得到了这个错误:
g++: error trying to exec 'cc1plus': execvp: No such file or directory
但如果我在 shell 中运行 php 代码.. 它工作正常..
在 Arch Linux 中..
PHP 代码:
<?php
function rfile($fp) {
$out="";
while (!feof($fp)) {
$out.= fgets($fp, 1024000);
}
return $out;
}
$p = popen('g++ -Wall -g aplusb.cc -o aplusb 2>&1', 'r');
$result = rfile($p);
pclose($p);
echo $result;
?>
谢谢
【问题讨论】:
-
您是否尝试过打印环境变量并进行比较?您是否开启或关闭了安全模式?
-
是的..我比较了 php 和 shell 之间的环境变量......但它没有任何帮助......而且我的安全模式是关闭..
-
您是在使用同一个用户还是从 Web 服务器执行脚本?加上“-v”(应该是详细输出),说不定会有答案。
-
ok.. 我刚刚测试编译 C++ 代码并以
http用户身份运行php xx.php。所有这些都是成功的......并且g++ -v在php代码中的输出与它在shell中的输出相似...... -
gcc -print-search-dirs这个怎么样?输出是否相同?