web-dev-qa-db-fra.com

Erreur LNK1561: le point d'entrée doit être défini

Je travaille avec Visual Studio 2012. 

Ma solution a 3 projets 

projetA 

projetB

projetC

et la hiérarchie est comme

projectC dépend de projectB qui, à son tour, dépend de projectA . Il y a une fonction principale dans projectC et aucune principale dans projectB et projectA . Les erreurs que je reçois sont les suivantes:

error LNK1561: entry point must be defined      projectA
error LNK1561: entry point must be defined      projectB

J'ai essayé de changer dans le Propriétés de configuration -> lieur -> système -> sous-système à la console (/ SUBSYSTEM: CONSOLE) mais le problème persiste toujours

Aidez-moi à sortir de ça.

11
Euler

Il semble que vous ayez mal compris le terme "module". Un tel projet C++ n'existe pas dans Visual Studio. Les projets C++ peuvent être divisés en trois catégories:

  • Programmes - la compilation produit un fichier exe qui peut être exécuté.
  • Bibliothèques statiques - la compilation produit un fichier lib, qui peut être inclus dans un autre projet et lié lors de la compilation.
  • Bibliothèques dynamiques - la compilation produit un fichier dll, qui peut être lié à votre programme au moment de l'exécution et fournit des fonctionnalités supplémentaires.

Dans votre description, vous souhaitez que les projets projectB et projectC soient des bibliothèques statiques, mais vous les avez plutôt créés sous forme de fichiers exécutables. Exécutez à nouveau le nouvel assistant de projet et choisissez "bibliothèque statique" au lieu de "application Windows".

Vous pouvez en savoir plus sur les bibliothèques statiques dans MSDN library .

Si les bibliothèques statiques sont trop lourdes pour votre application, vous pouvez simplement inclure les fichiers projectB et projectC dans votre projet (éventuellement, occupez-vous des espaces de noms pour ne pas confondre les noms de classes). Tout dépend du nombre de fonctionnalités que vous prévoyez d'implémenter dans ces "modules".

18
Spook

définir Propriétés -> Éditeur de liens -> Système -> Sous-système sur "Windows (/ SUBSYSTEM: WINDOWS)"

9
user2852297

Ce qui se passe éventuellement avec moi, c’est que lorsque vous passez de .exe à .dll, si vous passez de debug à release ou de x86 à x64, chaque fois que vous le faites, vous revenez à .EXE. Chaque configuration a ses propres propriétés. 

Alors, allez dans Propriétés> Type de configuration> .dll

Si en effet vous voulez faire un .dll.

2
Mark Aven

Je vais deviner que vous utilisez Windows pour créer ce projet. Pour moi, si j’utilise habituellement SDL, j’obtiens cette erreur. Tout ce que vous avez à faire est de taper ce #include <Windows.h> qui devrait résoudre le problème. ne pas savoir comment résoudre ce problème.

0
One Ace