【发布时间】:2021-02-11 20:10:09
【问题描述】:
我试图将 VC++ 项目从 Win32 迁移到 x64 下面是该项目的项目配置
我收到以下构建错误(链接器)
1>ResourceCompile:
1> Microsoft (R) Windows (R) Resource Compiler Version 6.1.6723.1
1>
1> Copyright (C) Microsoft Corporation. All rights reserved.
1>
1>
1>MSVCMRTD.lib(mstartup.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: tagMSG; fields: <alignment member>): (0x04000037).
1>MSVCMRTD.lib(mstartup.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: _SECURITY_ATTRIBUTES; fields: <alignment member>): (0x04000044).
1>MSVCMRTD.lib(managdeh.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: tagMSG; fields: <alignment member>): (0x04000033).
1>MSVCMRTD.lib(managdeh.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: _SECURITY_ATTRIBUTES; fields: <alignment member>): (0x04000038).
1>MSVCMRTD.lib(managdeh.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: _TP_CALLBACK_ENVIRON; fields: <alignment member>): (0x0400003e).
1>MSVCMRTD.lib(mehvecdtr.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: tagMSG; fields: <alignment member>): (0x04000032).
1>MSVCMRTD.lib(mehvecdtr.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: _SECURITY_ATTRIBUTES; fields: <alignment member>): (0x04000037).
1>MSVCMRTD.lib(mehvecdtr.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: _TP_CALLBACK_ENVIRON; fields: <alignment member>): (0x04000038).
1>MSVCMRTD.lib(msilexit.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: tagMSG; fields: <alignment member>): (0x04000037).
1>MSVCMRTD.lib(msilexit.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: _SECURITY_ATTRIBUTES; fields: <alignment member>): (0x0400003f).
1>MSVCMRTD.lib(msilexit.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: _TP_CALLBACK_ENVIRON; fields: <alignment member>): (0x0400004a).
1>MSVCMRTD.lib(puremsilcode.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: tagMSG; fields: <alignment member>): (0x04000032).
1>MSVCMRTD.lib(puremsilcode.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: _SECURITY_ATTRIBUTES; fields: <alignment member>): (0x04000037).
1>MSVCMRTD.lib(puremsilcode.obj) : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: _TP_CALLBACK_ENVIRON; fields: <alignment member>): (0x0400003d).
1>MSVCMRTD.lib(mstartup.obj) : error LNK2022: metadata operation failed (8013118D) : Inconsistent layout information in duplicated types (tagMSG): (0x0200003a).
1>MSVCMRTD.lib(mstartup.obj) : error LNK2022: metadata operation failed (8013118D) : Inconsistent layout information in duplicated types (_SECURITY_ATTRIBUTES): (0x02000044).
1>MSVCMRTD.lib(managdeh.obj) : error LNK2022: metadata operation failed (8013118D) : Inconsistent layout information in duplicated types (tagMSG): (0x02000035).
1>MSVCMRTD.lib(managdeh.obj) : error LNK2022: metadata operation failed (8013118D) : Inconsistent layout information in duplicated types (_SECURITY_ATTRIBUTES): (0x0200003a).
1>MSVCMRTD.lib(managdeh.obj) : error LNK2022: metadata operation failed (8013118D) : Inconsistent layout information in duplicated types (_TP_CALLBACK_ENVIRON): (0x0200003b).
1>MSVCMRTD.lib(mehvecdtr.obj) : error LNK2022: metadata operation failed (8013118D) : Inconsistent layout information in duplicated types (tagMSG): (0x02000033).
1>MSVCMRTD.lib(mehvecdtr.obj) : error LNK2022: metadata operation failed (8013118D) : Inconsistent layout information in duplicated types (_SECURITY_ATTRIBUTES): (0x02000038).
1>MSVCMRTD.lib(mehvecdtr.obj) : error LNK2022: metadata operation failed (8013118D) : Inconsistent layout information in duplicated types (_TP_CALLBACK_ENVIRON): (0x02000039).
1>MSVCMRTD.lib(msilexit.obj) : error LNK2022: metadata operation failed (8013118D) : Inconsistent layout information in duplicated types (tagMSG): (0x0200003a).
1>MSVCMRTD.lib(msilexit.obj) : error LNK2022: metadata operation failed (8013118D) : Inconsistent layout information in duplicated types (_SECURITY_ATTRIBUTES): (0x0200003f).
1>MSVCMRTD.lib(msilexit.obj) : error LNK2022: metadata operation failed (8013118D) : Inconsistent layout information in duplicated types (_TP_CALLBACK_ENVIRON): (0x02000040).
1>MSVCMRTD.lib(puremsilcode.obj) : error LNK2022: metadata operation failed (8013118D) : Inconsistent layout information in duplicated types (tagMSG): (0x02000035).
1>MSVCMRTD.lib(puremsilcode.obj) : error LNK2022: metadata operation failed (8013118D) : Inconsistent layout information in duplicated types (_SECURITY_ATTRIBUTES): (0x0200003a).
1>MSVCMRTD.lib(puremsilcode.obj) : error LNK2022: metadata operation failed (8013118D) : Inconsistent layout information in duplicated types (_TP_CALLBACK_ENVIRON): (0x0200003b).
1>LINK : fatal error LNK1255: link failed because of metadata errors
1>
1>Build FAILED.
1>
1>Time Elapsed 00:00:12.02
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========
我可以通过将结构成员对齐方式从 /Zp4 更改为 /Zp16 来解决上述错误,但是此更改会影响其他组件,有什么方法可以在不更改的情况下解决此错误结构成员对齐方式?
【问题讨论】:
-
嗨,关于这个问题的任何更新?
标签: visual-studio visual-c++ msbuild