2010-03-24 70 views
2

的eMbedded Visual C++ 3項目,即建設掌上電腦2000年在ARM編譯,鏈接器引發以下錯誤:錯誤LNK1223構建

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

在SH3,項目編譯,鏈接,和作品。該項目也適用於Visual C++ 2005上的ARM,但我需要從eVC3專門測試構建。

有什麼想法嗎?什麼是pdata貢獻,以及如何影響(或禁用)這些貢獻?這與異常處理有關;我試過通過指定/EHsc來禁用SEH,但沒有任何效果。

+0

只是好奇,你有沒有嘗試過EVC++ 4看看它是否構建? EVC3爲您的遺留構建提供EVC4不會的東西嗎? – codenheim 2010-03-24 03:23:59

+0

eVC4無法啓動,聲稱我沒有安裝任何CE SDK。事實上,我從PPC2000到WM6.1都有很多,既符合PlatMan規範,也符合CoreCon規範。我沒有與eVC4戰鬥,而是使用eVC3。 – 2010-03-24 03:30:18

+0

禁用SEH解決了我的問題,忽略了我的最後一條評論。謝謝。 – Hamed 2017-08-16 09:54:01

回答

1

非常奇怪。我試着評論文件中的所有內容。當我註釋掉一個extern「C」函數void __declspec(naked)with no body(body#ifdef'fed away)時,錯誤消失了。我在這個項目中有類似的功能,但是他們沒有拋出像這樣的錯誤。也許編譯器的bug ...

+0

我有同樣的問題,並找不到任何工作在我的案例在互聯網上的解決方案。我嘗試刪除功能,因爲你和[this](https://msdn.microsoft.com/en-us/library/15t6d69w.aspx)網站說,但沒有進展。你對此案有任何其他建議嗎? – Hamed 2017-08-16 05:30:45

+0

那是7年前。你真的以爲我記得細節嗎? – 2017-08-16 15:39:26

+0

正如我上面所說,我找到了解決方案,但在互聯網上幾乎沒有任何關於這個問題,所以向你問起是我的最後一次機會。不管怎麼說,還是要謝謝你。 – Hamed 2017-08-19 04:02:58

0

從我不知道,但谷歌與心靈挖出了這個線程這可能給你一個線索如何修復/解決辦法的問題......也許:

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.