2012-03-13 3 views
-3

Le problème avec le problème est, je ne sais pas où le problème existe, donc je ne peux pas coller tous mes codes source ici.error LNK1152: impossible de résoudre un ou plusieurs symboles non décorés. Comment réparer?

L'erreur est une erreur LNK, LNK 1152 pour être exact. Je reçois 3 avertissements apporté avec elle:

error LNK1152: cannot resolve one or more undecorated symbols 
warning LNK4002: "int __clrcall main(cli::array<class System::String^>^)" ([email protected]@[email protected]@@@Z) defined in Release\Note Reminder.obj 
warning LNK4002: "int __clrcall main(int,char * * const)" ([email protected]@[email protected]) defined in Release\INIwriter.obj 
warning LNK4022: cannot find unique match for symbol 'main 

Je ne sais pas comment corriger cette erreur. Quelqu'un avait cela avant, et l'a réparé?

+0

'Le problème avec le problème est, je ne sais pas où le problème existe, donc je ne peux pas coller tous mes codes sources ici.» Alors vous n'avez pas essayé de réduire le problème à un 10 -20 ligne testcase comme l'une de vos premières étapes de débogage, ce qui est regrettable. De plus, ce n'est pas C++. –

+0

il semble que vous avez deux définitions de la fonction 'main'. Un dans le fichier objet 'Note Reminder.obj' et l'autre dans le fichier' INIwriter.obj'. Chaque fonction avec une signature différente. Le deuxième semble être le point d'entrée du programme. – user1192525

+0

De l'apparence des messages d'erreur, * vous * pouvez penser que c'est C++, mais le compilateur/éditeur de liens pense que vous utilisez C++/CLI, ce qui n'est pas la même chose. Dans ce cas, ce que le compilateur pense gouverne la façon dont le code sera traité. –

Répondre

2

Cela semble être C++ - CLI ou quelque chose, pas C++. Vous définissez main dans plusieurs fichiers objet. On vous dit même quels sont les fichiers.

+0

Cela a résolu mon problème. – Miracle

+0

Cela a résolu mon problème! Merci !!! – Miracle

+0

@Miracle: De rien. –

2

Si vous ne comprenez pas pourquoi vous obtenez l'erreur, vous devriez commencer par résoudre les avertissements, ce qui dans ce cas est assez simple.

warning LNK4022: cannot find unique match for symbol 'main

.. Vous avez deux main fonctions, supprimer ou renommer un d'entre eux. cela devrait également résoudre votre erreur de liaison.

+0

Mm, ce serait dur, parce que ma source est sacrément grande. Je peux essayer d'utiliser le ctrl + F et chercher "main" mais je l'ai déjà fait et la seule chose que j'ai trouvé était le mainDLL. – Miracle

+0

Comment votre source est-elle devenue «sacrément grande» sans que vous ayez remarqué que vous aviez des définitions de fonctions conflictuelles? N'avez-vous pas essayé de l'exécuter même une fois en cours de route? –

+0

Oui, mais j'ai déjà essayé de commenter TOUTES les parties, et de les décomposer petit à petit. Et l'erreur persiste, Ça ne pourrait pas être quelque chose dans les propriétés du projet? – Miracle

Questions connexes