Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1443 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  system, popen et leurs problèmes :|

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

system, popen et leurs problèmes :|

n°1593811
Joel F
Real men use unique_ptr
Posté le 31-07-2007 à 15:01:45  profilanswer
 

Bon, pour une raison XYZ, j'ai besoin d'appeler g++ depuis un prog C++.
INFO : je suis sous g++ 4.1.2 sous ubuntu feisty :o

 

Ma première approche, débile et unsafe :o, était de faire :

 


int main()
{
  // J'ecris un truc qui compile dans un .cpp
  ofstream file("toto.cpp" );
  file << "#include <iostream>\n
               using namesapce std;\n
               int main()\n
               {\n
                  cout << \"Hello from runtime compiled prog\" << endl;\n
               }";
  file.close();

 

 system("g++ toto.cpp -o toto -O3 -Wall" );
  system("./toto" );
  return 0;
}

 

Rien de dantesque. Sauf que ... g++ me balance une erreur au link comme quoi y a pas de main dans mon programme :| Encore plus étrange, si je compile à la main toto.cpp depuis un terminal, ca marche :|
Même tarif avec popen()  ....

 

Donc question : y a t il une erreur grossière que j'ai pas vu :| ?
ou y a t il un meilleur moyen de faire ça ?

 

PS : creer un Makefile avant et faire system("make" ) ca ne march epas mieux :o


Message édité par Joel F le 31-07-2007 à 15:03:38
mood
Publicité
Posté le 31-07-2007 à 15:01:45  profilanswer
 

n°1593824
Un Program​meur
Posté le 31-07-2007 à 15:14:58  profilanswer
 

Aucun probleme ici apres avoir corrige namesapce en namespace et en utilisant la concatenation des litteraux de chaine plutot que d'en avoir un qui fait plusieurs lignes.

n°1593826
Taz
bisounours-codeur
Posté le 31-07-2007 à 15:16:22  profilanswer
 

t'as mal copié ou quoi ? namesapce, " manquantes, etc ?

n°1593827
Taz
bisounours-codeur
Posté le 31-07-2007 à 15:17:17  profilanswer
 

c'est bien le même g++ dans les deux cas ? même PATH et env ?

n°1593875
Joel F
Real men use unique_ptr
Posté le 31-07-2007 à 16:41:39  profilanswer
 

EDIT : on oublie tout, j'ai trouvé. Une erreur de PATH entre la machine de dev et celle de prod.
Ca marche ! désolé pour le dérangement :o


Message édité par Joel F le 31-07-2007 à 16:54:53
n°1594064
Joel F
Real men use unique_ptr
Posté le 31-07-2007 à 23:13:51  profilanswer
 

ok, bon sinon. Evidemment la compilation à la volée prends du temps. entre popen et system, c'ets quoi le mieux. system doit marcher en spawnant un sh non ? Y aurait il des astuces histoire d'effectuer cette compil le plus vite possible.

n°1594178
Taz
bisounours-codeur
Posté le 01-08-2007 à 09:04:24  profilanswer
 

je dirais kif kif et que c'est pas spawner un sh qui bouffe.

n°1594181
Un Program​meur
Posté le 01-08-2007 à 09:06:47  profilanswer
 

Si j'ai bonne memoire, les deux lancent un shell...
 
Si la vitesse de compilation est importante, un niveau d'optimisation moindre (-O1 par exemple) peut etre utile.  Note que -O0 risque d'etre contre-productif de ce point de vue si les choses n'ont pas change.

n°1594184
Joel F
Real men use unique_ptr
Posté le 01-08-2007 à 09:09:07  profilanswer
 

Pas bête le -O1, je vais voir ça.

n°1594247
Taz
bisounours-codeur
Posté le 01-08-2007 à 10:36:57  profilanswer
 

t'as qu'à vyrret <iostream> ;)

mood
Publicité
Posté le 01-08-2007 à 10:36:57  profilanswer
 

n°1594351
Joel F
Real men use unique_ptr
Posté le 01-08-2007 à 13:58:27  profilanswer
 

Taz a écrit :

t'as qu'à vyrret <iostream> ;)


Oui oui :o la c'était juste le "proof of concept". Le code vraiment généré/compilé à la volée à une autre gueule.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  system, popen et leurs problèmes :|

 

Sujets relatifs
rediriger system.out vers une variable String[C] Problèmes avec les chaines de caractères
Appel de commande Windows( system !) en C++AES / RSA : Bad Data error et autres problemes (de stream?)
[QST] Problèmes de linksProblèmes $_COOKIE et $_POST
Menu en html, css et javascript, nombreux problèmesTrou de mémoire : comment passer en mode test avec le system SIPS
Entete MIME par défaut avec system.Net.MailDeux colonnes pour contenu problèmes IE 6
Plus de sujets relatifs à : system, popen et leurs problèmes :|


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR