我正在尝试使用PHP中的exec()函数在XAMPP服务器上运行C ++。我正在导入C++ json library。当我从终端运行C ++代码时,它运行得很好,但是当我在PHP中运行它时,我没有输出。只要我从json库中添加任何代码,我就不再获得任何输出。
PHP:
<?php
exec("./cPlusPlus", $output);
echo $output;
?>
使用g ++编译的C ++ -std = c ++ 11:
#include <iostream>
#include <vector>
#include <string>
#include <cstdlib>
#include <json>
using namespace std;
using json = nlohmann::json;
int main(int argc, char *argsv[])
{
// If I remove this line, then I get the correct output
// If I keep this line, I get no output
json data = {"json stuff"};
cout << "This is returned to PHP.";
return 0;
}
似乎问题与我使用库的事实有关。我是否需要做一些特殊的事情才能使用PHP exec()函数运行库?
答案 0 :(得分:0)
我在@ChristianHackl的帮助下解决了我的问题。我将DISTINCT ON (id,score)
更改为SELECT id, created_at, data, (data->>'score')::NUMERIC AS score
FROM posts
WHERE NOT EXISTS (
SELECT 1
FROM swipes
WHERE ((swipes.data)->>'post_id')::INT = posts.id
AND ((swipes.data)->>'user_id')::INT = 32)
UNION
SELECT DISTINCT ON (id) ((notifications.data)->>'post_id')::INT AS id, posts.created_at, posts.data, 9999999 AS score
FROM notifications, posts
WHERE ((notifications.data)->>'user_id')::INT = 32 AND posts.id = ((notifications.data)->>'post_id')::INT
ORDER BY score DESC
以查看抛出的错误。
然后我才能看到错误:
libstdc ++。so.6:版本`GLIBCXX_3.4.14&#39;找不到
找到解决方案here。