静态链接的非托管libs和C++;CLR 是否可以在C++ CLR中使用/M/MT编译的LIBS?如果我在CLR项目中使用/MD,它会抛出大量LNK2022“元数据操作失败(8013118D)”错误,或者如果我使用/MT,“/MT”和“/CLR:pure”命令行选项不兼容
我需要在图书馆更改什么?这个库是我的,但它包括几个第三方静态库。LNK2022是一个很难确定的问题。这通常意味着影响结构布局的模块配置之一与其他模块不同 检查是否存在以下常见原因:静态链接的非托管libs和C++;CLR 是否可以在C++ CLR中使用/M/MT编译的LIBS?如果我在CLR项目中使用/MD,它会抛出大量LNK2022“元数据操作失败(8013118D)”错误,或者如果我使用/MT,“/MT”和“/CLR:pure”命令行选项不兼容,c++,clr,C++,Clr,我需要在图书馆更改什么?这个库是我的,但它包括几个第三方静态库。LNK2022是一个很难确定的问题。这通常意味着影响结构布局的模块配置之一与其他模块不同 检查是否存在以下常见原因: 确保所有项目对当前解决方案配置使用相同的运行库(/MDd或/MD)。如果一个项目正在使用Debug,而其他项目正在使用Release,或者反之亦然,则会出现LNK2022错误 确保所有项目都使用相同的结构杆件对齐方式。如果一个项目使用/Zp开关,请特别注意。此外,请确保不要有条件地使用#pragma pack(n)
- 确保所有项目对当前解决方案配置使用相同的运行库(/MDd或/MD)。如果一个项目正在使用Debug,而其他项目正在使用Release,或者反之亦然,则会出现LNK2022错误
- 确保所有项目都使用相同的结构杆件对齐方式。如果一个项目使用/Zp开关,请特别注意。此外,请确保不要有条件地使用#pragma pack(n)
有关更多信息,请参阅:LNK2022是一个很难确定的问题。这通常意味着影响结构布局的模块配置之一与其他模块不同 检查是否存在以下常见原因:
- 确保所有项目对当前解决方案配置使用相同的运行库(/MDd或/MD)。如果一个项目正在使用Debug,而其他项目正在使用Release,或者反之亦然,则会出现LNK2022错误
- 确保所有项目都使用相同的结构杆件对齐方式。如果一个项目使用/Zp开关,请特别注意。此外,请确保不要有条件地使用#pragma pack(n)
有关更多信息,请参见:我发现,混合使用不同crt运行时版本编译的本机代码静态库的唯一方法是编写一个DLL,它充当库之间的桥梁。 例如: your.exe-使用/MD和clr编译
yourbridge.dll-native,使用/MT编译,包括所有使用/MT构建的第三方lib。我发现混合使用不同crt运行时版本编译的本机代码静态库的唯一方法是编写一个dll,该dll充当库之间的桥梁。 例如: your.exe-使用/MD和clr编译
yourbridge.dll-本机,使用/MT编译,包括所有使用/MT构建的第三方lib。几乎保证为/Zp或pragma pack。几乎保证为/Zp或pragma pack。