Lorsque je compile un programme C/C++ avec popen
en php
... J'ai eu cette erreur :
g++: error trying to exec 'cc1plus': execvp: No such file or directory
mais si je lance le code php dans le shell cela fonctionne bien
dans Arch Linux..
Code PHP :
<?php
function rfile($fp) {
$out="";
while (!feof($fp)) {
$out.= fgets($fp, 1024000);
}
return $out;
}
$p = popen('g++ -Wall -g aplusb.cc -o aplusb 2>&1', 'r');
$result = rfile($p);
pclose($p);
echo $result;
?>
merci
2 votes
Avez-vous essayé d'imprimer les variables d'environnement et de les comparer ? Le mode sans échec est-il activé ou désactivé ?
0 votes
Oui... j'ai comparé les variables d'environnement entre php et le shell ... mais cela ne m'a pas aidé... et mon mode sans échec est Off...
0 votes
Utilisez-vous le même utilisateur ou exécutez-vous script depuis le serveur web ? Ajoutez "-v" (devrait être une sortie verbeuse), peut-être y aura-t-il une réponse.
0 votes
Ok je viens de tester de compiler le code C++ et de l'exécuter
php xx.php
comohttp
utilisateur. Tous les résultats sont positifs... et la sortie deg++ -v
le code en php est similaire à celui en shell1 votes
gcc -print-search-dirs
Que pensez-vous de ceci ? Est-ce que les sorties le même ?0 votes
Essayez d'ajouter
-v
à votregcc
dans PHP et regardez le résultat (il montrera ce qui se passe).0 votes
La différence de
gcc -v
es> COLLECT_LTO_WRAPPER=/usr/lib/gcc/i686-pc-linux-gnu/4.6.2/lto-wrapper
... et les sorties degcc -print-search-dirs
est le même...0 votes
Il est exaspérant que le sujet fasse référence à une erreur de compilation en C, mais que le corps de la question fasse référence à une erreur de compilation en C++.
0 votes
@JonathanLeffler Désolé pour la confusion, mais je me souviens que lorsque j'ai posé cette question, les programmes C et C++ ne peuvent pas être compilés.