【问题标题】:Run C++ code with PHP使用 PHP 运行 C++ 代码
【发布时间】:2014-01-25 18:42:49
【问题描述】:

我有一些 C++ 代码我想在服务器上运行并返回输出。我知道

exec("./myprogram.exe", $out);

应该运行程序,$out 将保存输出。目前我无法从我的程序中获得输出......它使用cout 输出它,我在 Windows 上编译它,我想要运行它的服务器是基于 Linux 的。有什么指点吗?

【问题讨论】:

    标签: php c++


    【解决方案1】:

    首先,您需要在 Linux 上重新编译您的 C++ 代码,首先使用 g++ -Wall -gg++ matters a lot 的参数顺序)-然后是其他一些编译器参数-因为 -Wall 要求提供所有警告,而 @987654331 @ 用于调试信息。在 Linux 上调试代码后,您还可以通过 -O2 要求 GCC 进行优化。

    然后您需要使用 PHP 的 popen 函数来获取命令的输出(通过 pipe)。如文件所述,使用例如fgets 从管道句柄读取,不要忘记 pclose 它。另见this answer

    【讨论】:

    • 参数顺序在这里有什么影响?
    • 我添加了上一个答案的链接;我说的是g++ 的参数顺序。
    • 它(g++ 的程序参数顺序)通常不是无关紧要的,特别是如果您的编译程序使用一些库。 OP没有告诉我们他的C++程序是什么,有多大……
    • 如果您有选择性听证会:您忽略了这里这个词。 “ -Wall 和 -g 的顺序很重要” - 这就是我读你句子的方式。
    • 这是相关的here,特别是如果 C++ 程序有多个源文件并使用多个库。您不会将其与g++ -lgmp foo.cc bar.cc -I/usr/local/include -L/usr/local/lib -o foobar 成功链接;而“顺序很重要”是指把-Wall -g first ....
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-14
    • 2020-05-25
    • 2015-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多