Partage
  • Partager sur Facebook
  • Partager sur Twitter

Compiler en ligne de comande

ave dec-c++

    12 octobre 2007 à 19:42:39

    Voilà,
    Je voudrais compiler mo programme en ligne de commande avec "system" mais je ne sais pas comment m'y prendre :p pourriez-vous m'expliquer ;) MERCI

    PS: Je suis sous dev-C++
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      12 octobre 2007 à 20:22:40

      Citation : Dandan3

      Je voudrais compiler mon programme en ligne de commande avec "system" mais je ne sais pas comment m'y prendre


      et

      Citation : Dandan3

      Je suis sous dev-C++

      ne vont pas ensemble. Ou bien j'ai pas compris ce que tu voulais dire dans la première citation que j'ai mise...
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        12 octobre 2007 à 22:47:16

        comme Hiura, j'ai pas bien compris.

        tu utilise system dans un programme, tandis que tu utilise dev c++ pour faire des prog
        • Partager sur Facebook
        • Partager sur Twitter
          13 octobre 2007 à 8:00:17

          oui en fait je cherche à créer un programme qui va en compiler un autre (ou en créer un autre) un peu comme un document de texte quoi voilà mon code :

          #include <windows.h>
          #include <iostream>
          #include <stdlib.h>


          void convert_multiple(char* buf)
          {
          int i;
          for(i=0;;i++)
          {
          if (buf[i]=='\0')
          {
          buf[i] = '\n';
          if (buf[i+1]=='\0')
          break;
          }
          }
          }

          int main()
          {

          OPENFILENAME ofn;
          char tmp[1024] ;
          tmp[0]= '\0' ;
          ZeroMemory ( &ofn , sizeof ( OPENFILENAMEW ) );
          ofn.lStructSize = sizeof ( OPENFILENAMEW );
          ofn.lpstrFile = tmp;
          ofn.nMaxFile = 1024;
          ofn.lpstrTitle = "Enregistrer Sous";
          ofn.lpstrFilter = "Windows Applications (*.exe)\0*.exe\0" ;
          ofn.Flags = OFN_LONGNAMES | OFN_EXPLORER | OFN_OVERWRITEPROMPT; // | OFN_ALLOWMULTISELECT ;
          int res = GetSaveFileName(&ofn);
          FILE* F = fopen("test.c","w");
          fprintf(F,"#include <stdio.h>\n#include <stdlib.h>\n\nint main (int argc, char *argv[])\n{\nprintf(\"slt\\n\");\nsystem(\"PAUSE\");\nreturn 0;\n}");
          //ici la ligne de commande du compilo pour qu'il compile mon nouveau prog
          fclose(F);//int res = GetSaveFileName(&ofn);
          std::cout << "code de sortie : " <<res << std::endl;
          //convert_multiple(ofn.lpstrFile);
          std::cout << "buffer de sortie : " << std::endl << ofn.lpstrFile << std::endl;
          return 0;
          }
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            13 octobre 2007 à 11:07:21

            Illisible ! Les balises c'est pas pour rien ;) .
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              13 octobre 2007 à 11:14:19

              c'est vrai qu'on voit rien...

              pour compiler un programme, il suffit de faire appel a ton compilateur, mais je crois qu'il faut créer un makefile avant.
              mais je ne voit pas torp l'interet, car ou tu demande l'emplacement du compilo, ou alors ton programme ne tourne que sur ton ordi, auquel cas tu a autant a faire de passer par devcpp
              • Partager sur Facebook
              • Partager sur Twitter
                13 octobre 2007 à 11:34:50

                1. #include <windows.h>
                2. #include <iostream>
                3. #include <stdlib.h>
                4. void convert_multiple(char* buf)
                5. {
                6. int i;
                7. for(i=0;;i++)
                8. {
                9. if (buf[i]=='\0')
                10. {
                11. buf[i] = '\n';
                12. if (buf[i+1]=='\0')
                13. break;
                14. }
                15. }
                16. }
                17. int main()
                18. {
                19. OPENFILENAME ofn;
                20. char tmp[1024] ;
                21. tmp[0]= '\0' ;
                22. ZeroMemory ( &ofn , sizeof ( OPENFILENAMEW ) );
                23. ofn.lStructSize = sizeof ( OPENFILENAMEW );
                24. ofn.lpstrFile = tmp;
                25. ofn.nMaxFile = 1024;
                26. ofn.lpstrTitle = "Enregistrer Sous";
                27. ofn.lpstrFilter = "Windows Applications (*.exe)\0*.exe\0" ;
                28. ofn.Flags = OFN_LONGNAMES | OFN_EXPLORER | OFN_OVERWRITEPROMPT; // | OFN_ALLOWMULTISELECT ;
                29. int res = GetSaveFileName(&ofn);
                30. FILE* F = fopen("test.c","w");
                31. fprintf(F,"#include <stdio.h>\n#include <stdlib.h>\n\nint main (int argc, char *argv[])\n{\nprintf(\"slt\\n\");\nsystem(\"PAUSE\");\nreturn 0;\n}");
                32. //ici la ligne de commande du compilo pour qu'il compile mon nouveau prog
                33. fclose(F);//int res = GetSaveFileName(&ofn);
                34. std::cout << "code de sortie : " <<res << std::endl;
                35. //convert_multiple(ofn.lpstrFile);
                36. std::cout << "buffer de sortie : " << std::endl << ofn.lpstrFile << std::endl;
                37. return 0;
                38. }


                Je comprends pas trop l'intéret de ce code.

                Tu veux faire un programme qui en crée un autre ?

                De plus ton code c'est du C, donc mauvais forum.
                • Partager sur Facebook
                • Partager sur Twitter
                Co-auteur du cours de C++. ||| Posez vos questions sur le forum ||| Me contacter.

                Compiler en ligne de comande

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown