Question

J'ai d'abord fait un programme Eclipse (compilateur MinGW). Maintenant, je traduis le code de Visual Studio 2008. Il est une solution avec plusieurs projets. 2 des projets sont en cours d'exécution pour un programme (console). Les 2 autres projets sont des classes auxiliaires pour ceux-ci. J'ai mis les dépendances du projet afin que les projets sont compilés dans le bon ordre. Je maintenant obtenir un message d'erreur LNK2019 et LNK1120 parce que je n'ai pas principal dans le projet d'aide. J'ai essayé de compiler les projets d'aide sans lien, mais je ne peux pas savoir comment je dois le faire. Je l'ai essayé d'ajouter l'option du compilateur -c mais sans succès. J'ai aussi essayé d'ajouter un principal inutile au projet d'aide, mais la compilation échoue sur la compilation du réel principal avec « fonction ne peut pas être surchargé ».

Comment puis-je résoudre ce problème si je peux avoir des projets aide sans principal?

Était-ce utile?

La solution

Si vous souhaitez effectuer une bibliothèque d'aide, vous devez utiliser le type de projet Class Library au lieu de Console Application

Autres conseils

Vous pouvez compiler vos aides que les bibliothèques statiques et relier les à vos programmes principaux.

  1. Faites un clic droit sur le projet (s) dans l'Explorateur de solutions pour les compiler indépendamment de l'ensemble de la solution. Vous pouvez également build séparément, ce qui assure à la fois la compilation et la liaison.

  2. Dans Windows (je ne suis pas sûr de Linux), DLL nécessitent encore un point d'entrée. Le nom conventionnel est DllMain . Si vous ne voulez pas un point d'entrée, vous devez créer une bibliothèque statique au lieu d'une DLL qui se reliera dans votre application au moment de lien plutôt que chargé dynamiquement lors de l'exécution.

    Vous devez modifier les propriétés de votre projet afin de lui dire que vous créez maintenant une bibliothèque statique, plutôt que d'une bibliothèque dynamique. Cela empêchera l'éditeur de liens de la recherche d'une fonction main. Vous trouverez peut-être de cette procédure pas utile.

    La fonction « ne peut pas être surchargé » erreur est probablement parce que la fonction main factice que vous avez ajouté a / a eu la mauvaise signature.

scroll top