如何在ubuntu中使用php脚本编译c程序

时间:2013-09-14 18:54:06

标签: php c++ gcc

我正在开发一个在线测试系统,通过它我们可以进行在线编程竞赛。 对于同样的我想使用像system()shell_exec()exec()等函数从PHP脚本调用C编译器。但该函数不创建a.out文件 当我用终端写g++ a.cpp -o a时它起作用了。

但这不起作用

system("g++ a.cpp -o a",$as); //a.cpp is inside www folder

1 个答案:

答案 0 :(得分:2)

PHP以不同的用户身份运行,因此可能无权执行g++命令。

要使PHP可以访问该命令,请尝试以下操作:

sudo chmod o+x /usr/bin/g++

N.B。 /usr/bin/g++有时可能是同一目录中另一个可执行文件的符号链接,因此更改其权限将不会执行任何操作(默认情况下符号链接为777)。如果上述命令无法解决问题,您可以将此命令的输出添加到您的问题中,该问题将显示它指向的位置:

ls -al /usr/bin/g++

在我的系统上,输出

lrwxrwxrwx 1 root root      7 2011-08-10 14:52 /usr/bin/g++ -> g++-4.5

这意味着g++基本上是g++-4.5的别名,因此我会在g++-4.5上允许“其他”执行权限:

sudo chmod o+x /usr/bin/g++-4.5