2010-03-24 23 views
2

eMbedded Visual C++ 3 projet, qui est la construction pour PocketPC 2000. Sur la construction ARM, l'éditeur de liens jette l'erreur suivante:Erreur LNK1223 sur ARM construit

fatal error LNK1223: invalid or corrupt file: file contains invalid pdata contributions

Sur SH3, le projet compile, liens, et travaux. Le projet fonctionne également lorsqu'il est créé pour ARM sur Visual C++ 2005, mais j'ai besoin de tester des builds spécifiquement à partir d'eVC3.

Des idées, s'il vous plaît? Qu'est-ce qu'une contribution pdata et comment puis-je affecter (ou désactiver) ceux-ci? C'est quelque chose à voir avec la gestion des exceptions; J'ai essayé de désactiver SEH en spécifiant /EHsc, sans effet.

+0

Juste curieux, avez-vous essayé EVC++ 4 pour voir s'il se construit? Y a-t-il quelque chose que EVC3 vous donne pour votre build hérité que EVC4 ne le ferait pas? – codenheim

+0

eVC4 ne démarre pas pour moi, affirmant que je n'ai pas de SDK CE installé. En fait, j'en ai plein, à la fois compatible Platman et compatible CoreCon, depuis PPC2000 jusqu'à WM6.1. Plutôt que de se battre avec eVC4, je suis allé avec eVC3. –

+0

La désactivation de SEH a résolu mon problème, ignorez mon dernier commentaire. Merci. – Hamed

Répondre

1

Très étrange. J'ai essayé de tout commenter dans le fichier. L'erreur est partie lorsque j'ai mis en commentaire une fonction qui était extern "C" void __declspec (nu) sans corps (body # ifdef'fed away). J'ai des fonctions similaires dans le projet, mais ils n'ont pas jeté d'erreurs comme celle-ci. Peut-être un bug de compilateur ...

+0

J'ai le même problème et je ne trouve aucune solution de travail sur internet pour mon cas. J'ai essayé de supprimer des fonctions sans corps comme vous et [ce] site (https://msdn.microsoft.com/en-us/library/15t6d69w.aspx) dit mais pas de progrès. Avez-vous d'autres suggestions pour ce cas? – Hamed

+0

C'était il y a 7 ans. Pensez-vous honnêtement que je me souviens des détails? –

+0

Comme je l'ai dit plus haut, j'ai trouvé la solution, mais il n'y a presque rien à propos de ce problème sur internet, alors demander à vous était ma dernière chance. Merci quand même. – Hamed

0

Aucune idée de moi, mais Google esprit dragué ce fil qui pourrait vous donner une idée de la façon de corriger/solution le problème ... peut-être:

After looking at the error more closely, I finally figured out that this is a side-effect of my hijacking of SC_SetDaylightTime() in the kernel with my own version. Apparently, something that I'm doing in my code there is causing the compiler to generate pdata entries that are wrong in some way. A strategically-placed #ifndef worked around it.