Maison  >  Article  >  développement back-end  >  Pourquoi est-ce que je reçois le message « Erreur LNK2019 symbole externe non résolu _main » dans mon application C ?

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

Susan Sarandon
Susan Sarandonoriginal
2024-11-22 09:00:12253parcourir

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)

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;
}

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;
}

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!

Déclaration:
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