Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 13/06/2006, à 20:42

chlag

Compilation des programmes C avec gcc.

Bonsoir,
J'ai un programme C, simple:

#include <stdio.h>
int x = 0;
main()
{
        while (x=!10) {
                printf("Hello world!\n");
                x++;
        }
        return 0;
}

L'opération de compilation avec gcc:

~$ gcc -o hello hello.c

se passe en silence et sans problème, mais lorsque je fais:

~$ ./hello

je n'obtiens rien du tout.
La question est comment executer un programme C sous Ubuntu.Merci.

Dernière modification par chlag (Le 13/06/2006, à 21:00)


Ubuntu 20.04.2 LTS  en double-boot avec: OpenSUSE Leap 15.3
"It is not about being the BEST but it is about being better than YESTERDAY"
"If you study you learn."(Einstein)

Hors ligne

#2 Le 13/06/2006, à 21:43

Riicooo

Re : Compilation des programmes C avec gcc.

Tu as écrit =! au lieu de !=...
Donc il affecte à x l'inverse (booleen) de 10 donc 0 et retourne 0... et ne rentre même pas dans le while !
Pourquoi tu n'as pas simplement testé un hello word tout simple sans while ?
Au lieu de croire que le problème venait de Ubuntu wink

Dernière modification par Riicooo (Le 13/06/2006, à 21:49)

Hors ligne

#3 Le 13/06/2006, à 21:53

node

Re : Compilation des programmes C avec gcc.

^^'

Hors ligne

#4 Le 14/06/2006, à 23:21

gene69

Re : Compilation des programmes C avec gcc.

hum...
je te déconseille de déclarer ta fonction main comme ça:

main(){}

le standart c'est

int main( /*int argc, char** argv*/ ){}

et sous linux ajoute que tu as 0 à renvoyer au shell si tout c'est bien passer


Quand le berger est lâche, le loup chie de la laine.
A (draft) guide to UFO Alien-Invasion

Hors ligne

#5 Le 14/06/2006, à 23:57

lost-in-the-shell

Re : Compilation des programmes C avec gcc.

gene69 > int argc et char **argv ne sont utiles que si l'on utilise les arguments passés au programme lors de l'éxecution. Si tu n'en as pas besoin, tu peux très bien écrire int main (void) {} , on te tapera pas dessus wink .

EDIT : j'avais pas vu que c'était commenté, au temps pour moi.

Dernière modification par lost-in-the-shell (Le 15/06/2006, à 00:23)


Linux user #401253 - Ubuntu user #3023 .
Nick sur IRC : naji.
Pensez à adhérer au Comité de lutte contre le SMS.

Hors ligne

#6 Le 15/06/2006, à 19:59

gene69

Re : Compilation des programmes C avec gcc.

hahaha
big_smile


Quand le berger est lâche, le loup chie de la laine.
A (draft) guide to UFO Alien-Invasion

Hors ligne

#7 Le 16/06/2006, à 23:11

Premium

Re : Compilation des programmes C avec gcc.

chlag a écrit :

Bonsoir,
J'ai un programme C, simple:

#include <stdio.h>
int x = 0;
main()
{
        while (x=!10) {
                printf("Hello world!\n");
                x++;
        }
        return 0;
}

L'opération de compilation avec gcc:

~$ gcc -o hello hello.c

se passe en silence et sans problème, mais lorsque je fais:

~$ ./hello

je n'obtiens rien du tout.
La question est comment executer un programme C sous Ubuntu.Merci.

Penses aussi à utiliser les options qui signalent le s warnings.
Un programme bien écrit, ne doit pas en contenir.
Je compile de cette manière :
gcc -W -Wall -ansi nom_prog.c -o nom_prog
-W et -Wall sert pour détecter les warnings
-ansi pour utiliser la norme ansi

Hors ligne

#8 Le 17/06/2006, à 12:54

lost-in-the-shell

Re : Compilation des programmes C avec gcc.

Premium > tu as du rater le cours du post : l'erreur réside dans x=!10


Linux user #401253 - Ubuntu user #3023 .
Nick sur IRC : naji.
Pensez à adhérer au Comité de lutte contre le SMS.

Hors ligne

#9 Le 17/06/2006, à 13:07

Premium

Re : Compilation des programmes C avec gcc.

lost-in-the-shell a écrit :

Premium > tu as du rater le cours du post : l'erreur réside dans x=!10

J'ai vu que la solution lui avait été donnée, je lui ai seulement conseillé de faire des tests sur les warnings qui pourraient y avoir ...

Dernière modification par Premium (Le 17/06/2006, à 13:11)

Hors ligne