2

eMbedded Visual C++ 3 项目,为 PocketPC 2000 构建。在 ARM 构建中,链接器抛出以下错误:

致命错误 LNK1223:文件无效或损坏:文件包含无效的 pdata 贡献

在 SH3 上,项目编译、链接和工作。该项目在 Visual C++ 2005 上为 ARM 构建时也可以工作,但我需要专门从 eVC3 测试构建。

请问有什么想法吗?什么是 pdata 贡献,我如何影响(或禁用)这些贡献?这与异常处理有关;我尝试通过指定/EHsc, 来禁用 SEH,但没有效果。

4

2 回答 2

1

很奇怪。我尝试注释掉文件中的所有内容。当我注释掉一个没有主体(主体#ifdef'fed away)的extern“C”void __declspec(naked)函数时,错误消失了。我在项目中有类似的功能,但他们没有抛出任何这样的错误。也许是编译器错误...

于 2010-03-24T15:43:19.180 回答
0

我不知道,但谷歌的头脑挖掘了这个线程,这可能会给你一个线索如何解决/解决这个问题......也许:

SC_SetDaylightTime()在更仔细地查看了错误之后,我终于发现这是我用自己的版本在内核中劫持的副作用。显然,我在我的代码中所做的事情导致编译器生成以某种方式错误的 pdata 条目。一个战略性地#ifndef围绕它工作。

于 2010-03-24T03:32:58.053 回答