Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Linux] et le c/c++

Execution du fichier compilé?

Sujet résolu
    28 novembre 2005 à 23:35:49

    Ami(e)s Zér0 bonsoir, :)

    Voilà, je parle du tuto Compiler le C et C++ sous linux
    J'ai fait tous les tutos c/c++ de M@teo sur windows, ça marche, ok pas de problème.
    Je l'ai refait sous linux, j'ai utilisé emacs, j'ai compilé le fichier main, mais quand je lance le fichier main compilé, rien ne se passe, pas de printf("BONJOURS"); qui s'affiche! :(
    Faut-il l'executer avec un logiciel spécifique, me manque t'il un pakage?

    J'ai Unbutu v5.10

    Merci de votre aide :magicien:
    • Partager sur Facebook
    • Partager sur Twitter
      29 novembre 2005 à 7:18:32

      Je ne trouve pas le cours très complet sur ce point...

      Il ne faut poas nécessairement utiliser emacs, même s'il marche très bien :)

      Il y a Xemacs qui est mieux à mon goût car un peu plus "interactif" ^^

      "Vi" est très bien en natif aussi :) au moins, vous êtes sur qu'il y est celui-là, sinon c'est pas une vraie distribution Linux que vous avez ;)

      Bref... pour ton soucis... es-tu sur que ton programme soit compilé correctement ?

      Expliques-nous ce que tu as fait, ce que ca t'as écrit/donné ?
      • Partager sur Facebook
      • Partager sur Twitter
        29 novembre 2005 à 7:35:36

        jvois pas en quoi xemacs est meilleur qu'emacs, c'est qu'une question de goût et pour le débutant c'est du pareil au même le jeu de commandes de base est le même donc je ne vois absolument pas ce qu'il y a de plus interactif ; si tu parles des menus ou autre conneries graphiques (comme le tetris :D) de X utilisables à la souris, tu sais très bien que ce n'est _jamais_ utilisé (sinon tu n'utilises pas emacs, tu fais semblant de l'utiliser hein :p)

        m'enfin tu as raison sur le fait qu'il y ait le choix du programmeur :
        emacs, xemacs
        vim, elvis

        ps : ceci n'est pas agressif hein, de toute façon c'est de coutume de saluer les hérétiques collègues qui travaillent sur d'autres éditeurs :p

        voilà en gros :)
        • Partager sur Facebook
        • Partager sur Twitter
          29 novembre 2005 à 9:01:01

          rz0 :)

          Ca fait plaisir de reparler de ca avec toi ;)

          Je proposais Xemacs à un débutant parce que justement, il peut palier à ses non-connaissances dans les commandes emacs en utilisant les menus qui vont bien :)

          Bref... autant utiliser ce qu'on aime, et du coup, autant savoir ce qui existe ;)

          Il parait que KDevelop sous KDE est bien ? jamais testé...
          • Partager sur Facebook
          • Partager sur Twitter
            29 novembre 2005 à 9:49:26

            Thor tu le lances à partir de la console ?
            Sinon :
            ouvre une console
            va dans le rep de ton programme
            et fais ./ton_exe

            Contrairement à windows ça n'ouvrira pas de console, il faut donc le lancer direct dedans.
            • Partager sur Facebook
            • Partager sur Twitter
              29 novembre 2005 à 9:59:07

              Dans certaine console, si le programe le ne flush pas stdout il ne s'affiche rien.

              printf("BONJOURS\n");
              • Partager sur Facebook
              • Partager sur Twitter
                29 novembre 2005 à 12:24:07

                Citation : The Dooft

                Dans certaine console, si le programe le ne flush pas stdout il ne s'affiche rien.

                printf("BONJOURS\n");

                pas le temps de vérifier mais lorsque le programme se termine, je pense que les buffers doivent être flushés
                • Partager sur Facebook
                • Partager sur Twitter
                  29 novembre 2005 à 12:32:21

                  Sauf si Glibert Montagné est passé par là.
                  "On va flusher" :p

                  (surtout marrant si on connait la pub flunch)
                  • Partager sur Facebook
                  • Partager sur Twitter
                    29 novembre 2005 à 12:38:50

                    fais gaffe aussi, sous linux les droits d'accès (qu'on appelle chmod) son très restrictif
                    si ton fichier ne veut pas se lancer, vérifie qu'il est autorisé en executable
                    (soit par les propriété, soit en tapant la ligne de commande chmod +x fichier --- ou fichier et le chemin d'accè au fchier à partir du repertoire courrant)
                    • Partager sur Facebook
                    • Partager sur Twitter
                      29 novembre 2005 à 12:41:50

                      <hs>kayl, je crois que ton humour me dépasse :p

                      binabik les droits constituent ce qu'on appelle le mode et non ne chmod, ch = change, mod = mode</hs>
                      • Partager sur Facebook
                      • Partager sur Twitter
                        29 novembre 2005 à 12:54:04

                        mmm etrange, passe ton source je vait voir de l'essaier
                        • Partager sur Facebook
                        • Partager sur Twitter
                          29 novembre 2005 à 13:24:29

                          Je ne crois pas que sous ubuntu un éxécutable peut ouvrir une console (enfin pas en l'état), moi quand j'en lance j'ouvre toujours avant une console et je le démarre le programme à partir de là
                          • Partager sur Facebook
                          • Partager sur Twitter
                            29 novembre 2005 à 19:49:33

                            Texte Terminal Texte en C

                            Alors en le lancant avec
                            ./main
                            J'obtient
                            sh: PAUSE: command not found
                            j'ai donc ajouté \n après "Bonjours"et j'ai obtenu
                            Bonjours
                            sh: PAUSE: command not found

                            Citation : Mon code source est:

                            #include <stdio.h>
                            #include <stdlib.h>

                            int main(int argc, char *argv[])
                            {
                            printf("Bonjours\n");
                            system("PAUSE");
                            return 0;
                            }

                            • Partager sur Facebook
                            • Partager sur Twitter
                            Anonyme
                              29 novembre 2005 à 19:54:04

                              Enlèves le system("PAUSE"); sous Linux ça existe pas et ça sert à rien. Tu pourras le remplacer par un getchar() ou getch() je crois ;)
                              • Partager sur Facebook
                              • Partager sur Twitter
                                29 novembre 2005 à 20:16:56

                                Ok merci, j'ai trouvé ma réponse ici, le problème à déjà été soulevé!
                                getchar(),getch() Qu'est ce que c'est?

                                Citation : Garuma

                                Je ne crois pas que sous ubuntu un éxécutable peut ouvrir une console (enfin pas en l'état), moi quand j'en lance j'ouvre toujours avant une console et je le démarre le programme à partir de là


                                Est-il possible de rendre un executable "executable!" au vrai sens du terme; c'est à dire qu'il se lance une fois cliqué dessus?
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  29 novembre 2005 à 20:18:11

                                  Cela ne veut strictement rien dire. Comment sont gérer les fichiers dans ton file manager ne dépend que de lui, arrange-toi pour le configurer
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    29 novembre 2005 à 20:24:01

                                    Je ne suis pas sur linux depuis très longtemps, donc je ne sais pas vraiment comment cela fonction!
                                    Comment faut-il procéder pour configuer le file manager?

                                    PS:Je suis sur Ubuntu

                                    Merci pour toutes les réponses que vous m'avez déjà données. :)
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      29 novembre 2005 à 20:27:14

                                      bah, comment le configurer : cela va dépendre duquel tu as, probablement celui de Gnome, à savoir nautilus, je ne sais pas comment le configurer pour ton problème vu que je ne l'utilise pas
                                      mais sache que pratiquement personne ne lance une app dans console depuis le FM vu que ça va aussi vite de taper le nom de l'app depuis une console depuis le début et c'est plus pratique
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        29 novembre 2005 à 20:34:22

                                        Oui effectivement j'utilise Gnome. :)

                                        Ok, merci; faut dire que je suis passé à linux la semaine dernière, et donc je ne maitrise pas encore parfaitement linux, pas facile d'oublie la methode du doublé/cliqué de windows ;)
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          29 novembre 2005 à 20:52:27

                                          En fait pour reprendre ce que tu dis, pour qu'un executable soit vraiment executable ;) il faut qu'il soit avec un GUI, sinon tu peux cliquer droit sur le fichier, et selectionner "ouvrir avec terminal". Y'a peut etre aussi moyen d'ecrire un script (l'equivalent de .bat sous windows) pour ouvrir directement l'executable dans la console
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            29 novembre 2005 à 21:40:40

                                            à l'époque où je savais pas développer en C sous linux, j'avais écrit un script qui lancait une console et le script depuis emacs.

                                            C'est pas dur, tu regarde les man de deux trois terminaux, il suffit qu'ils autorisent le lancement avec une ligne de commande et l'option --pause ou --break et ca rewl.
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              29 novembre 2005 à 22:48:26

                                              --pause et --break ne sont pas reconnue dans le terminal!

                                              Mais une question plus générale maintenant:
                                              Quand on telecharge un programme, sur windows on double-clique, le fichier s'execute, le programme s'install.
                                              mais sur linux, si j'ai bien compris, il faut tout lancer par le terminal?
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                29 novembre 2005 à 23:13:48

                                                Bon !
                                                Effectivement, ça pose des problèmes on dirait !
                                                Un executable ne l'ai que si il a le droit x !
                                                ls -l main
                                                -r-x--x--x 1 natim users 52887 2005-10-12 14:13 main


                                                là, c'est pour le vérifier !
                                                Mais pour le changer, il suffit de faire :
                                                chmod a+x main

                                                Et il devient executable par tous !

                                                Pour le programme du cours :
                                                #include <stdio.h>
                                                #include <stdlib.h>

                                                int main()
                                                {
                                                  printf("Bonjour\n");
                                                  return 0;
                                                }

                                                Et encore, le return 0; et facultatif dans main()

                                                Enfin, là ça doit marché !
                                                Tu fais :
                                                g++ -o main main.cpp
                                                ./main


                                                Pour thor non !
                                                Mais pour ce qui est de la programmation en C++ en ligne de commande oui !
                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  30 novembre 2005 à 11:13:29

                                                  Citation : Thor

                                                  --pause et --break ne sont pas reconnue dans le terminal!

                                                  Mais une question plus générale maintenant:
                                                  Quand on telecharge un programme, sur windows on double-clique, le fichier s'execute, le programme s'install.
                                                  mais sur linux, si j'ai bien compris, il faut tout lancer par le terminal?



                                                  Les programmes s'execute de la meme facon sous linux ou windows. Néanmoins si il n'y a aucun interfacage graphique, le fait de lancer un executable en 'cliquant' ne se voit pas. Quand je code sous windows (si si, ca m'arrive), je lance les programmes dans une console exactement comme sous unix. Il y a pas mal de programmes developpés pour linux qui s'installent et se lancent en mode graphique, comme c'est le cas sous windows la plupart du temps.
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter

                                                  [Linux] et le c/c++

                                                  × 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