Включенные библиотеки C ++ не работают при выполнении C ++ из переполнения стека

Я пытаюсь запустить C ++ на сервере XAMPP с помощью функции exec () в PHP. Я импортирую Библиотека C ++ json. Когда я запускаю код C ++ из терминала, он работает отлично, но когда я запускаю его в PHP, я не получаю вывод. Как только я добавляю какой-либо код из библиотеки json, я больше не получаю никакого вывода.

PHP:

<?php
exec("./cPlusPlus", $output);
echo $output;
?>

C ++ скомпилирован с g ++ -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

Решение

Я исправил свою проблему с помощью @ChristianHackl. Я изменился exec("./cPlusPlus", $output); в exec("./cPlusPlus 2>&1", $output); для того, чтобы увидеть брошенные ошибки.
Я тогда смог увидеть ошибку:

libstdc ++. so.6: версия `GLIBCXX_3.4.14 ‘не найдена

и нашел решение Вот.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]