C++ undefined reference to WinMain@16 (Code::Blocks)
Je suis en train d'apprendre le C++ et Code::Blocks, et à chaque fois que j'essaie de créer une nouvelle classe, j'obtiens un message d'erreur disant:
undefined reference to `WinMain@16'
Voici le code que j'ai utilisé:
Classe Principale
#include "Lime.h"
#include <iostream>
using namespace std;
int main()
{
Lime lime;
return 0;
}
De La Chaux (De La Classe.pcc):
#include "Lime.h"
#include <iostream>
using namespace std;
Lime::Lime()
{
cout<<"Hi!";
}
La Chaux-Tête (.h):
#ifndef LIME_H
#define LIME_H
class Lime
{
public:
Lime();
};
#endif
Si quelqu'un sait comment résoudre le problème, s'il vous plaît, dites-moi!
Vous avez personnalisé le lien entre les deux fichiers objets créés à partir de la compilation les deux .les cpp ou placer les fichiers dans un projet.
Je ne sais pas codeblocks, mais vous devez activer le sous-système de la CONSOLE
Non, cela n'a rien à voir avec le problème. Voir cette réponse
toutes ces fichiers sont mis dans le même projet, déjà, le problème a été résolu seulement par le redémarrage de CodeBlocks, tu sais peut-être pourquoi est-ce?
Tout simplement, vous avez besoin d'avoir créé une "Console Application", plutôt que d'un "GUI Win32 Projet"
Je ne sais pas codeblocks, mais vous devez activer le sous-système de la CONSOLE
Non, cela n'a rien à voir avec le problème. Voir cette réponse
toutes ces fichiers sont mis dans le même projet, déjà, le problème a été résolu seulement par le redémarrage de CodeBlocks, tu sais peut-être pourquoi est-ce?
Tout simplement, vous avez besoin d'avoir créé une "Console Application", plutôt que d'un "GUI Win32 Projet"
OriginalL'auteur Atom | 2014-02-01
Vous devez vous connecter pour publier un commentaire.
J'ai juste eu le exacte même problème de travailler avec le exacte même des tutoriels.
Comment résoudre ce problème?
J'ai trouvé que le redémarrage de CodeBlocks se débarrasser de cette erreur. Il n'a rien à voir avec la façon dont vous avez créé les fichiers ou l'un de vos syntaxe. Un redémarrage est le tour est joué.
Pourquoi cela se produit-il?
Si je devais prendre une je devine, je pense que CodeBlocks en effet de créer l'en-tête/fichiers cpp, il n'est pas cependant un lien à votre projet, de manière adéquate, ce qui les rend utilisables (bien qu'il ne vous demande de faire le lien avec le projet après la créer). C'est une supposition.
Je comprends que certaines personnes ont commenté en disant que vous êtes en train de créer une interface utilisateur Windows de l'application de la console au lieu d'une application console, mais ce n'est pas le cas. Moi aussi, j'étais en train de créer une application de console simple comme Bucky explique dans la vidéo.
C'est si impressionnant. Je faisais exactement la même chose, en passant par exactement la même tutoriel, en utilisant le même programme, et d'avoir exactement le même problème de ce qui c'est exactement la même solution a fonctionné. Merci!
Content d'avoir pu aider!
Merci cela a fonctionné, vous.
OriginalL'auteur user3308043
Essayez ceci:
Settings
->Compiler
, cliquez sur l'ongletBuild options
, sélectionnez la case à cocherP. S.
La prochaine fois, quand vous créez une nouvelle classe, dans les
File policy
section, assurez-vous de cocher des casesCependant, ne PAS sélectionnez
enfin, un simple mal de tête-réponse de moins!!
Enfin une bonne et courte réponse!
OriginalL'auteur Milo Lu
Aller à
"Project" --> "Build Options . . ."
sur la barre de menuAller à
"Linker Settings"
ongletDans
"Link libraries"
panneau, cliquez sur"Add"
Écrire cela dans les prochains terrain:
mingw32;libSDL.a;libSDLmain.a
Aller à
"Search directories" --> "Linker"
ongletAjouter votre MinGW des dossiers de la bibliothèque! Bonne Chance!!
OriginalL'auteur Saleh
On dirait que vous êtes la construction d'une application Windows, plutôt que d'une application console. Par conséquent, vous avez besoin d'un WinMain fonction que le point d'entrée du programme, plutôt que d'un
main
.Je ne suis pas familier avec CodeBlocks, mais quelque part dans le projet de création d', il y aura un paramètre qui vous permet de spécifier le sous-système de votre programme est en cours d'exécution. C'est sans doute dire "Windows", et l'une des options doit être "Console", de sorte que vous pouvez le modifier que si vous voulez vraiment une application console. À en juger par le fait à l'aide de votre
cout
je soupçonne une application console est ce que vous voulez. Si il est pas, vous pouvez laissermain
que votre point d'entrée.Vous pouvez également opter pour une application de console lorsque vous créez un nouveau projet. Cette capture d'écran et le texte devrait aider.
NOTE: j'ai juste vérifié un peu plus, et dans le
Project/target option
vous pouvez aller à la "Build targets" et l'onglet voir le sous-système que vous êtes en train de construire. Il est appelé "Type" sur la languette, et l'une des options du menu déroulant sera "Console application".Console Application
et dans les options de la cible, il ditConsole Applications
.OriginalL'auteur Sean
J'ai corrigé cela en ouvrant la boîte de dialogue paramètres du compilateur et simplement en cliquant sur OK. Rien n'a changé. Et ça fonctionne vraiment!
Mais si vous ajoutez une nouvelle classe encore une fois, ce problème se répète. Donc, il suffit d'ouvrir/fermer la boîte de dialogue paramètres chaque fois que vous créez une nouvelle classe.
OriginalL'auteur Sergey Dolgopolov
elle est très simple et travaillé pour moi ... tout ce que vous avez à faire est de sélectionner "ouvrir un projet existant" qui apparaît dans l'onglet démarrer une fois que vous ouvrez des blocs de code et ensuite vous choisissez (votre nom de projet ).cbp fichier ... le programme va ouvrir vos projets ainsi que le nom de la classe .h et .fichiers cpp ... à vous de créer et d'exécuter des ... et voila votre code fonctionne très bien ..
OriginalL'auteur Sherif Osama el demairy
J'ai rencontré les problèmes que bien avant, ma solution est de créer un projet si vous avez beaucoup de fichiers qui incluent à la tête de fichier. De cette manière, lorsque vous code #include "Burrito.h" l'éditeur va chercher la tête de fichier dans votre projet.Surtout pour Dev-cpp éditeur.
OriginalL'auteur user3567012
Essayez ceci: Paramètres->Compilateur, cliquez sur l'onglet options de compilation, sélectionnez la case à cocher
Ajouter explicitement actuellement la compilation du répertoire du fichier à compilateur recherche dirs
je l'ai fait et je fonctionne parfaitement maintenant
OriginalL'auteur chirag
Correctif: undefined reference to `WinMain@16' ou undefined reference to 'de nom de classe::classe-nom()' dans codeblocks Erreur dans CodeBlocks
J'ai eu le même problème. En fait il était très facile à corriger. Sur Menu barre d'aller à
OriginalL'auteur Wahid
Ce problème m'est apparu parce que le "main.cpp" n'a pas été inclus dans le projet. Si vous voyez cette erreur une fois de plus, assurez-vous d'avoir tous les fichiers inclus dans votre projet.
OriginalL'auteur Revnic Robert-Nick