Ошибка LNK1223 на сборках ARM - PullRequest
2 голосов
/ 24 марта 2010

Проект eMbedded Visual C ++ 3, созданный для PocketPC 2000. В сборке ARM компоновщик выдает следующую ошибку:

фатальная ошибка LNK1223: неверный или поврежденный файл: файл содержит неверные вклады pdata

На SH3 проект компилируется, связывается и работает. Проект также работает при сборке для ARM на Visual C ++ 2005, но мне нужно тестировать сборки специально из eVC3.

Есть идеи, пожалуйста? Что такое вклад pdata и как я могу повлиять на него (или отключить)? Это связано с обработкой исключений; Я попытался отключить SEH, указав /EHsc, безрезультатно.

Ответы [ 2 ]

1 голос
/ 24 марта 2010

Очень странно. Я попытался закомментировать все в файле. Ошибка исчезла, когда я закомментировал функцию, которая была extern "C" void __declspec (голая) без тела (body # ifdef'fed away). У меня есть похожие функции в проекте, но они не выдавали никаких ошибок, подобных этой. Может быть, ошибка компилятора ...

0 голосов
/ 24 марта 2010

Понятия не имею, но гугл-разум углубил эту тему, которая может дать вам подсказку, как решить / обойти проблему ... возможно:

После более внимательного изучения ошибки я наконец понял, что это побочный эффект моего угона SC_SetDaylightTime() в ядре с моим собственная версия. Видимо, то, что я делаю в своем коде, есть заставляя компилятор генерировать записи pdata, которые каким-то образом неверны. Стратегически расположенный #ifndef работал вокруг него.

...