Menu

Code::Block c++ (1d returned 1 exit status)

zematex 111 Messages postés mercredi 10 janvier 2018Date d'inscription 3 juillet 2018 Dernière intervention - 17 févr. 2018 à 14:47 - Dernière réponse : [Dal] 4684 Messages postés mercredi 15 septembre 2004Date d'inscriptionContributeurStatut 9 juillet 2018 Dernière intervention
- 8 juin 2018 à 01:09
bonjour,
merci de lire mon problème alors voilà :
je fais du c++ sur Codde::Block mais quand je fais mon code (un code au hazard) :

#include <iostream>
using namespace std;


int laFonction  ()
{
    int valeuur(2);
    if (valeuur == 2)
    {
        cout << "ca marche !" <<endl;
    }
    else
    {
        cout << "lol" <<endl;
    }
    return 0;
}

eh bien le compilateur ne fait rien et me marque : " undefined reference to ``WinMain@16``
1d returned 1 exit status "
Donc je comprend pas, j'ai vu que d'autres personnes ont ce problème mais j'ai toujours pas réussi à régler le problème,,,,,,, MERCI!!!!
Afficher la suite 

Votre réponse

5 réponses

[Dal] 4684 Messages postés mercredi 15 septembre 2004Date d'inscriptionContributeurStatut 9 juillet 2018 Dernière intervention - Modifié par [Dal] le 19/02/2018 à 10:44
0
Merci
Bonjour,

Deux choses :

- ton programme nécessite une fonction qui soit le point d'entrée
- selon le type de programme que tu réalises, Console ou Win32, le nom du point d'entrée sera différent

Pour résoudre ton "problème" :

- lorsque tu crées ton projet sélectionne le type "Console application"
- lorsque tu écris ton programme, il doit comporter une fonction "main" qui est le point d'entrée standard pour les applications Console

Note que WinMain est le point d'entrée sous Windows des applications graphiques.


Dal
zematex 111 Messages postés mercredi 10 janvier 2018Date d'inscription 3 juillet 2018 Dernière intervention - 6 mars 2018 à 17:40
dak, merci
Commenter la réponse de [Dal]
Itdaboyz 263 Messages postés mercredi 22 juin 2011Date d'inscription 24 juillet 2018 Dernière intervention - 6 juin 2018 à 23:44
0
Merci
Il faut une fonction main en c++

int main(int argc, char **argv){
//debut du programme
return 0;
}
zematex 111 Messages postés mercredi 10 janvier 2018Date d'inscription 3 juillet 2018 Dernière intervention - 7 juin 2018 à 18:24
C'est quoi argc et c'est quoi ce double pointeur ? Et le argv nonpljs je connais pas ...
[Dal] 4684 Messages postés mercredi 15 septembre 2004Date d'inscriptionContributeurStatut 9 juillet 2018 Dernière intervention - 8 juin 2018 à 01:09
les prototypes valides de main selon le standard du C sont :

int main(void);

ou
int main(int argc, char* argv[]);


Tu utilises le premier si ton programme n'utilise pas de paramètres en ligne de commande. En C++, la forme
int main()
est aussi admise et signifie la même chose.

Tu utilises le deuxième lorsque ton programme attend des paramètres passés en ligne de commande et que tu veux exploiter ces paramètres dans ton programme.

Exemple :

#include <stdio.h>

int main(int argc, char* argv[])
{
    int n;

    printf("argc = %d\n", argc);
    printf("argv[0] = %s\n", argv[0]);

    if (argc > 1) {
        printf("Vous avez lancé le programme avec les "
                "arguments suivants :\n");
        for (n = 1; n < argc; n++)
            printf("argument %d : %s\n", n, argv[n]);
    } else {
        printf("Vous n'avez passé aucun paramètre\n");
    }
    return 0;
}

on compile

$ gcc -Wall 35209554.c -o exemple

on lance le programme sans paramètres et on obtient (exemple sous Linux) :
$ ./exemple 
argc = 1
argv[0] = ./exemple
Vous n'avez passé aucun paramètre
$

on lance le programme en ligne de commande avec quelques paramètres et on obtient :

$ ./exemple titi toto tutu
argc = 4
argv[0] = ./exemple
Vous avez lancé le programme avec les arguments suivants :
argument 1 : titi
argument 2 : toto
argument 3 : tutu
$

char* argv[]
est équivalent à
char **argv
car un tableau de chaînes C est en fait un tableau de pointeurs vers des pointeurs sur char.

Dal
Commenter la réponse de Itdaboyz