IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C++ Discussion :

Executer du code C++ sans créer un projet


Sujet :

C++

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 199
    Points : 103
    Points
    103
    Par défaut Executer du code C++ sans créer un projet
    Bonjour à tous.

    En phase d'apprentissage de C++, beaucoup d'exemples tiennent en moins de 15 lignes de programme.

    Actuellement j'utilise Code::Block ou Eclipse comme IDE. Mais je trouve ça lourd, à chaque fois il faut créer un nouveau projet, le compiler... pour obtenir que le code puisse tourner ( ce qui est par ailleurs normal).

    Existerait-il un outil (ou une fonction dans ces IDE) qui permettent, dans une console ou autre, de faire tourner un simple code via copier/coller, sans devoir créer un projet/fichier. Ca permet aussi de tester un bout de fonction lors du développement d'un programme plus conséquent. Un peu comme une console SQL, par exemple.

    Sinon, comment pratiquez-vous alors ?

    Merci de votre aide.

  2. #2
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    En effet.
    Et la bonne réponse est d'utiliser ton compilateur directement.

    Pour linux, en général, c'est g++, mais ca peut être autre chose (clang, par exemple).
    Pour windows, c'est un peu plus subtile, mais que ce soit Eclipse ou code::blocks, le compilateur est extérieur à l'EDI, et tu trouveras sa position directement dans les options de l'EDI (ou d'un des projets)

    Une fois localisé, tu pourras compiler en ligne de commande, en définissant toi-même les options de compilations.
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 199
    Points : 103
    Points
    103
    Par défaut
    Merci leternel.

    Alors là, si je m'attendais... Le compilateur ! le truc que l'on ne comprend pas du tout lorsque l'on débute et qui n'est même pas vu dans mon cours.

    Tout ce que je sais, c'est que je ne sais rien à ce sujet. Mais je suis visiblement intéressé. Pourrais-tu m'indiquer grossièrement un workflow ou un tuto qui expliquerait ceci.

    Par avance, merci.

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    C'est bizarre, il me semblait que Code::Blocks n'avait pas besoin de projet...

    (l'inconvénient de Code::Blocks, c'est qu'il utilise la même fenêtre d'options pour le C et le C++ sans filtrer, résultat on ne peut pas choisir une fois pour toutes le C99 sans avoir une erreur dès qu'on compile du C++)
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 199
    Points : 103
    Points
    103
    Par défaut
    Vraiment, je n'ai pas de compétence en ce domaine. De surcroit, je préfère Eclipse car je comprends suis beaucoup mieux le programme en mode debug et ça pour l'apprentissage, c'est génial.

    Tout ce que je peux dire c'est qu'à l'ouverture de code::block, la page d'accueil propose de créer ou d'ouvrir un projet. Après, j'ai bien essayé de coller un peu de code dans les onglets du panneau inférieur et aucun ne l’accepte.

    Quant aux icônes actives de la barre d'outil, seules celles de création et d'ouverture d'un projet sont actives.

    Mais, si il y a moyen, je suis preneur.

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Perso j'ai un projet nommé sandbox où je peux tester rapidement ce que je veux, sous VS
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 199
    Points : 103
    Points
    103
    Par défaut
    J'ai installé Visual C++2010 express ainsi que Visual Studio 2015 (community).

    Je ne trouve pas de sandbox. Dois-je comprendre que c'est un outil perso ?

    Par ailleurs cet environnement me parait si complexe...

    Toutefois, si tu peux me donner des précisions, je suis intéressé.

  8. #8
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    C'est juste que Bousk s'est fait un projet où il met les divers trucs qu'il veut tester.

    J'ai fait de même d'ailleurs, plusieurs projets de ce type, dont un nommé "DvpCom"...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 199
    Points : 103
    Points
    103
    Par défaut
    Ok, je comprends. Créer un projet pour y faire des tests.

    Ca n'est pas mon souhait car je ne sais pas gérer plusieurs main.cpp dans un même projet. Et je ne veux pas toujours écraser les test précédents.

    Mais là, avec la solution de notepad++, ça me semble parfait.

    Je reviendrais vers vous, mais pour des questions certainement plus techniques.

    Merci.

  10. #10
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    rien n'empêche de faire toto_main.cpp, tata_main.cpp, et d'appeler tout ça depuis le vrai main quand on fait les tests...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  11. #11
    Expert confirmé
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Points : 4 182
    Points
    4 182
    Par défaut
    Mon conseil :

    • installe MSYS2 ;
    • mets à jour le système via la procédure indiquée sur la page ;
    • installe le compilateur : $ pacman -S mingw-w64-x86_64-gcc ;
    • ouvre un éditeur de texte, écris ton programme ;
    • profit! :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      $ g++ -std=c++14 -pedantic -Wall -Wextra main.cpp
      $ ./a.exe

  12. #12
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Une solution qui peut être pratique dans certains cas, en particulier si tu n'es pas sur ta machine... Un compilateur online. Par exemple http://coliru.stacked-crooked.com/ te permet d'exécuter du code que tu tapes sur une page web.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 199
    Points : 103
    Points
    103
    Par défaut
    @Médinoc => c'est tellement évident !!! Mais je n'y avait pas pensé

    @Matt_Houston => Installé. Maintenant, comment l'utiliser ? Je n'ai pas trouvé d'aide dans le Wiky ni l'arborescence... Si tu as un lien, par hasard...

    @JolyLoic => c'est enregistré dans les marques pages. Effectivement très pratique.


    Merci à tous pour votre aide.

  14. #14
    Expert confirmé
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Points : 4 182
    Points
    4 182
    Par défaut
    Citation Envoyé par KonTiKI Voir le message
    @Matt_Houston => Installé. Maintenant, comment l'utiliser ? Je n'ai pas trouvé d'aide dans le Wiky ni l'arborescence... Si tu as un lien, par hasard...
    Par défaut l'installeur lui-même devrait te lancer un terminal en fin d'installation. Si ce n'est pas le cas, recherche un raccourci dans ton menu de démarrage. Quelque chose comme « MSYS2/Msys2 shell ».

    À l'ouverture du terminal le shell te place dans ton home ~, à savoir <chemin d'installation, par exemple C:\msys64>/home/<hostname de la machine, ou nom d'utilisateur>/. Le terminal émule un environnement Unix, la plupart des commandes usuelles y sont déjà disponibles. Les disques Windows (D:, E:, etc...) sont montés directement à la racine, tu peux y accéder via cd /d, cd /e...

    Le gestionnaire de paquets est pacman, dont voici une cheatsheet :

    • rechercher un package: pacman -Ss <mot-clef>
    • installer un package: pacman -S <nom du package>
    • désinstaller un package (avec ses dépendances): pacman -Rsn <nom du package>

    N'oublie pas d'effectuer la mise à jour telle que décrite sur la page Github (en refermant le terminal entre chaque étape).

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 199
    Points : 103
    Points
    103
    Par défaut
    @matt_Houston : Tout fonctionne, mais je ne suis pas certain que ce soit le moyen le plus simple pour compiler/exécuter quelques lignes de code en C++.

    J'y reviendrai dès que possible. En attendant, merci pour ton aide.

  16. #16
    Expert confirmé
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Points : 4 182
    Points
    4 182
    Par défaut
    Accroche-toi, big révélation : Windows, c'est tout pourrave pour développer (et pas que, mais je m'arrête ici). Une des solutions les plus rapides pour s'éviter des migraines est donc d'émuler d'une façon ou d'une autre un système plus adapté. Donc oui, ça demande quelques minutes de mise en place. En revanche maintenant tout ce que tu as à faire c'est invoquer le compilateur sur tes fichiers, difficile de faire plus simple.

    Si tu es ouvert aux solutions non locales la proposition de JolyLoic d'utiliser un environnement en ligne tel qu'ideone ou autre reste la meilleure AMHA.

  17. #17
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    Il y a d'autres variantes de la solution MSYS: une machine virtuelle completement sous linux, "bash for windows", mingw
    Dans tous les cas, il s'agit effectivement de se doter d'une console suffisamment pratique.

    Je n'ai pas encore utilisé MSYS, mais ca m'a l'air d'un bon choix.
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  18. #18
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Salut,
    Citation Envoyé par leternel Voir le message
    Il y a d'autres variantes de la solution MSYS: une machine virtuelle completement sous linux, "bash for windows", mingw
    Dans tous les cas, il s'agit effectivement de se doter d'une console suffisamment pratique.

    Je n'ai pas encore utilisé MSYS, mais ca m'a l'air d'un bon choix.
    Disons qu'il a l'avantage d'être *** relativement *** léger et qu'il fournit le minimum vital de ce que l'on retrouve sous linux (dont M4 et les "autotools") afin d'automatiser la compilation.

    En dehors de l'utilisation d'une machine virtuelle (ou de celle de cigwin), c'est la seule solution que je connaisse à ce jour qui permette de compiler Gcc (et les binutils, bien sur) avec windows comme cible

    Mais bon, il faut le vouloir pour compiler soi même Gcc et les binutils, car ca prend un temps bête
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  19. #19
    Membre averti Avatar de Seabirds
    Homme Profil pro
    Post-doctoral fellow
    Inscrit en
    Avril 2015
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Post-doctoral fellow
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2015
    Messages : 294
    Points : 341
    Points
    341
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    rien n'empêche de faire toto_main.cpp, tata_main.cpp, et d'appeler tout ça depuis le vrai main quand on fait les tests...
    Un léger doute me prend... Je croyais qu'on avait qu'une seule fonction main par programme ? Qu'entendais-tu par là ?

    Ce que j'ai fait personnellement pour gérer des suites de petits tests dans un petit projet c'est des fichiers bash qui compilent chaque fichier tatat_test.cpp contenant un main, l'exécute et fait le ménage avant de passer au toto_test.cpp suivant.
    Typiquement un test_file.sh :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    g++ -o Node_test -Wall -std=c++14 Node_test.cpp
    ./Node_test
    rm Node_test
    Y'a sans doute moyen de faire plus propre, mais à mon échelle de tout petit projet j'ai l'impression que ça passe encore ( ) et surtout ça m'encourage à mieux connaître notre pote g++ quand j'utilise des librairies (ce qui sous CodeBlocks ou Qt n'était clairement pas le cas). Bref, ça m'a paru un compromis satisfaisant avant de passer au makefile, qui me fait l'effet d'un overkill ( ).
    Le débutant, lui, ignore qu'il ignore à ce point, il est fier de ses premiers succès, bien plus qu'il n'est conscient de l'étendue de ce qu'il ne sait pas, dès qu'il progresse en revanche, dès que s'accroît ce qu'il sait, il commence à saisir tout ce qui manque encore à son savoir. Qui sait peu ignore aussi très peu. [Roger Pol-Droit]
    Github
    Mon tout premier projet: une bibliothèque de simulation de génétique des populations

  20. #20
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Ce que j'entends par là:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    int main(int argc, char *argv[])
    {
        return toto_main(argc, argv);
        //return tata_main(argc, argv);
        //return test3_main(argc, argv);
    }
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Projet de lib et executable avec code commun
    Par Ange_blond dans le forum Bibliothèques
    Réponses: 22
    Dernier message: 20/05/2009, 10h59
  2. Réponses: 18
    Dernier message: 16/12/2008, 19h53
  3. executer le code d'initialisation du projet
    Par popov2 dans le forum WinDev
    Réponses: 2
    Dernier message: 30/05/2007, 09h35
  4. [C# 2.0]Executer du code sans afficher de fenêtre
    Par NicolasJolet dans le forum Windows Forms
    Réponses: 10
    Dernier message: 20/09/2006, 13h37
  5. Réponses: 3
    Dernier message: 27/01/2006, 15h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo