“文件包含无效的 .pdata 贡献”构建 64 位 dll 时

发布于 2024-09-10 05:58:26 字数 388 浏览 3 评论 0原文

我目前正在从 32 位迁移到 64 位,并在尝试构建链接到我也构建的非托管 C++ .lib 文件的 64 位托管 C++ dll 时遇到链接错误:

LNK1223:文件无效或损坏:文件包含无效的 .pdata 贡献

到目前为止,我发现此错误应该仅在为 RISC 计算机构建时发生,但在我的情况下并非如此。有谁知道这个错误以及可能导致它的可能问题?

添加: 非托管 C++ 库正在使用 Intel 编译器进行编译,而托管 DLL 正在使用 Microsoft 编译器进行构建。

添加#2: 当使用 Microsoft 编译器编译 lib 时,dll 可以正常编译。这并不能解释为什么编译器甚至查看 lib 的 .pdata

I am currently migrating from 32-bit to 64-bit and encountering a link error when attempting to build a 64-bit managed C++ dll that links to an unmanaged C++ .lib file that I also built:

LNK1223: invalid or corrupt file: file contains invalid .pdata contributions

So far, I have found that this error should only occur while building for RISC machines, but this is not the case in my situation. Does anyone know about this error and the possible issues that might cause it?

Addition:
The unmanaged C++ libs are being compiled with the Intel compiler, while the managed DLL is being built using the Microsoft compiler.

Addition #2:
The dll compiles just fine when the lib has been compiled using the Microsoft compiler. This does not explain why the compiler even looks at the lib's .pdata

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

奶气 2024-09-17 05:58:26

当我将非托管项目从 vs2010 迁移到 vs2012 时,我也遇到了 LNK1223 错误。

我通过删除编译器标志 /GL 来修复它。

希望这个方法适合您的情况。

When I migrated my unmanaged project from vs2010 to vs2012, I met the LNK1223 error too.

I fixed it by removing compiler flag /GL.

Hope this method suite for you situation.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文