Maison > développement back-end > C++ > le corps du texte

Pourquoi est-ce que je reçois le message « Erreur LNK2019 symbole externe non résolu _main » dans mon application C ?

Susan Sarandon
Libérer: 2024-11-22 09:00:12
original
252 Les gens l'ont consulté

Why am I getting the

Erreur : résolution des symboles externes dans les applications C

Problème :

Lors de la création d'une application C, vous pouvez rencontrer l'erreur suivante :

Error LNK2019 unresolved external symbol _main referenced in function "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ)
Copier après la connexion

Cause :

Cette erreur se produit généralement lorsque les conditions suivantes ne sont pas remplies. rencontré :

  • La fonction de point d'entrée du projet main() n'est pas définie ou n'est pas accessible depuis le module principal.
  • L'éditeur de liens ne peut pas localiser la définition de main() dans le spécifié bibliothèque.

Solution :

Pour résoudre ce problème, suivez ces étapes :

1. Assurez-vous de l'existence de la fonction main() :

Vérifiez que votre projet inclut une fonction appelée main() dans le code source. Cette fonction sert de point d'entrée au programme et doit être définie comme suit :

int main(int argc, char** argv)
{
    // Your program logic goes here
    return 0;
}
Copier après la connexion

2. Paramètres de l'éditeur de liens :

Vérifiez les paramètres de l'éditeur de liens de votre projet pour vous assurer que la fonction main() est accessible depuis le module principal. Dans Visual Studio, accédez à :

  • Propriétés du projet
  • Linker
  • Système
  • Sous Sous-système, sélectionnez Windows

3. Vérifier l'inclusion de la bibliothèque :

Confirmez que la bibliothèque contenant la définition de main() est incluse dans les paramètres de l'éditeur de liens du projet. Celui-ci peut être trouvé dans :

  • Propriétés du projet
  • Linker
  • Entrée
  • Supplémentaire Dépendances

Exemple de projet :

#include "windows.h"

int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hprevinstance, LPSTR lpcmdline, int ncmdshow)
{
    MessageBox(NULL, _T("Hello, world!"), _T("My Application"), MB_OK);

    return 0;
}
Copier après la connexion

Remarque : Dans cet exemple, main() est déclaré à l'aide de la macro WINAPI car WinMain( ) la fonction est le point d'entrée des applications Windows.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal