是否可以使用在C ++ CLR中使用/ MT编译的库?它抛出了大量的LNK2022“元数据操作失败(8013118D)”错误(如果我在CLR项目中使用/ MD)或“'/ MT'和'/ clr:pure'命令行选项是不兼容的”如果我使用/ MT。
我需要在库中更改什么?该库是我的,但它包含几个第三方静态库。
答案 0 :(得分:3)
LNK2022很难确定。它通常意味着影响结构布局的模块配置之一与其他模块不同。
检查以下常见原因:
您可以使用/ d1reportSingleClassLayout_your-class-name_(不含空格)来获取有关有问题的类布局的信息。
答案 1 :(得分:1)
我发现混合使用不同crt运行时版本编译的本机代码静态库的唯一方法是编写一个类似于库之间桥梁的DLL。 例如:
your.exe - 使用/ MD和clr编译 yourbridge.dll - 本机,使用/ MT编译,包括使用/ MT构建的所有第三方库。