Création commande shell compilation

Bonjour,

Je suis un peu novice sous linux mais désireux d'apprendre :p
Voici mon problème, dans le cadre de mes études, je dois programmer en c++.
Etant en phase d'apprentissage, il est clair que je compile/lance le programme/et fait le ménage TRES souvent.

Il existe une commande dans ma fac qui permet justement de compiler (g++)/de lancer l'appli dans le shell/ et d'effacer les ~ et a.out en une seule commande.

J'aimerai faire de même car je trouve celà tres pratique

Merci d'avance
Configuration: Linux
Firefox 2.0.0.11

10 réponses

  1. je crois que sa marche mais je suis obliger de taper :
    sh ccc "nom du fichier.cpp" et celà ne marche que dans le root

    est-il possible de le rendre executable dans le shell et en marquant seulement ccc "paramètre"? ou je dois pas faire comme celà?
    1. Bonjour,

      Tout ce que tu peux faire sur la ligne de commandes, tu peux le mettre dans un fichier texte, puis rendre le fichier texte éxécutable et hop, en tapant le nom de ton fichier, les commandes qu'il contient sont exécutées...

      Exemple :
      fichier "compileretnettoyer"
      #!/bin/bash
      
      # Transformation de l'extension (ex. : .cpp) en .bin
      base=`echo $1 | sed -e 's/\.[^.]*$/.bin/'`
      
      # compilation
      echo c++ -o $base $1
      c++ -o $base $1
      
      # nettoyage
      rm -f *~ *tmp
      


      Donc ce fichier s'appelle "compileretnettoyer". Pour le rendre exécutable :
      chmod +x compileretnettoyer
      


      Pour l'exécuter :
      ./compileretnettoyer toto.cpp
      


      Va compiler toto.cpp puis nettoyer le répertoire des fichier ~ et tmp

      Raph
      1. alors
        compiler : g++ -lm "fichie.cpp"
        lancer l'appli ./a.out
        effacer rm a.out

        pour le moment j'ai fait (je sais pas si c'est la bonne méthode)
        #su
        cd /bin
        nano ccc (le nom de ma futur commande)

        et dedans :
        g++ -lm $1
        ./a.out (le nom ne doit pas dépendre du parametre je crois)
        et rm a.out

        merki
        1. Modérateur
          Je recommence...

          Donnes-moi les commandes que tu saisies pour :
          - compiler
          - lancer l'appli dans le shell
          - effacer les ~ et a.out
          1. oui c'est ce que je pensais faire mais je savais pas trop ou se situais les commandes...

            en fait c'est dans ./bin c'est sa?

            ce que tu expliques doit être une apllication de la démo d'ici :
            http://www.lea-linux.org/cached/index/Dev-shell_script.html

            dsl pour le lien externe
            1. Modérateur
              Il existe une commande dans ma fac qui permet justement de compiler (g++)/de lancer l'appli dans le shell/ et d'effacer les ~ et a.out en une seule commande.
              Copie/colle les différentes commandes que tu tapes normalement et on verra ce qu'on peut faire.
              1. un script sous linux?
                je croyais qu'il fallait creer un alias ou directement une commande dans bin...

                Ok donc en fait je fais comme une fonction
                mais...comment creer ce script, ou le mettre et serait-ce possible d'avoir un exemple bateau

                merci encor :)
                1. Modérateur
                  Salut,

                  Il te suffit de mettre dans un script l'enchainement des commandes que tu tapes les unes à la suite des autres, soit chacune sur un ligne différente soit sur un ligne chacune séparée de la suivante par "&&" (sans les guillemets), et de passer en paramètre le nom du fichier (bien sûr, il te faudra inclure ce paramètre dans tes lignes de commandes).

                  ;-))