我有一个使用 c 中的 opencv 库开发的可执行文件。我想使用 php 脚本从我的网站(网络服务器:apache)执行它。我面临的问题是,可执行代码在从终端调用时会打开一个窗口(一种 gui,使用 cvNamedWindow 打开),但在从嵌入式 php 脚本调用时不会这样做。对于执行,我尝试了 exec、system、passthru 等,但所有这些都失败了。
更清楚:可执行文件的名称 -> gui,phpscript(页面)的名称 ->abcd.php
@terminal 如果我输入“./gui”...窗口打开。
@终端,如果 itype "php abcd.php"窗口打开
abcd.php 是我网站的一部分。在网络浏览器中,如果我打开“http://...../abcd.php”,窗口不会打开。尽管可执行文件中的其他东西工作得很好。如果我将它们作为参数传回给 exec,它们就会被打印出来。
有什么解决办法吗??
更新
感谢您的回复.. 我会这样提出我的问题.. 有一个在客户端上运行的可执行文件。它有一个图形用户界面,用户可以通过它连接到服务器并接收可以在图形用户界面中看到的视频流。该可执行文件在终端上执行时运行良好。 由于 php 也可以调用可执行文件,因此我正在尝试通过网页添加更多功能。但是程序的执行方式与在终端执行时的方式不同。
最佳答案
如果您只需要一个窗口让应用程序正常运行,您可以尝试创建一个假窗口,方法是使用 xvfb 在虚拟 X 服务器中运行它。这不会很有效,但至少您的应用程序会执行而不会崩溃。
现在,如果您正在谈论在客户端上启动应用程序,我认为这不是您可以合理期望的工作,除非客户端实际下载您尝试运行的代码并自愿执行您的程序。一般来说,网络浏览器不应该运行来自任意网站的 native 机器代码。
关于php - 将 OpenCV 与 php 连接起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6348591/