Code::Block c++ (1d returned 1 exit status)
zematex
Messages postés
116
Statut
Membre
-
[Dal] Messages postés 6122 Date d'inscription Statut Contributeur Dernière intervention -
[Dal] Messages postés 6122 Date d'inscription Statut Contributeur Dernière intervention -
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) :
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!!!!
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!!!!
2 réponses
-
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 -
Il faut une fonction main en c++
int main(int argc, char **argv){ //debut du programme return 0; }-
-
les prototypes valides de main selon le standard du C sont :
int main(void);
ouint 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 formeint 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
-