当前位置:   article > 正文

Cryptopp库 C1900:“P1”(第“20210113”版)和“P2”(第“20150812”版)之间IL不匹配_p1第20210202版

p1第20210202版

在这里插入图片描述
我在vs2019上编译一个项目时出现的上述错误,根据第二行的警告可以知道,是由于我的cryptlib库使用了/GL和/LTGC规范导致编译出错。

总结知识点

IL:编译链接时的内部语言,编译可细分为前后端,前段编译会使用C1.dll来生成IL,后端编译会使用C2.dll来运用IL。
LTCG:链接时分模块进行优化,由于LTCG,使得C1和C2无法匹配。

判断lib文件是否使用LTCG的方法: http://t.csdn.cn/7HaXx

根据别的教程,右键点击库对应的工程文件, 把GL和LTCG功能关掉

在这里插入图片描述
在这里插入图片描述
我尝试了,甚至把所有优化有关的全关掉,并没有作用。
于是我决定重新下载编译一版新的。

Cryptopp下载编译安装

从官网上下载了version7.0版本,然后用vs2019打开vcxproj文件,点击生成lib文件。
在这里插入图片描述
用上面提到的检验方法检查发现新生成的lib文件是没有使用LTCG,于是用这个新的cryptopp文件夹替换掉项目中的旧版,但是!新的文件并不能被识别!

于是我捣鼓了很久,终于在使用到这个库的子项目对应的vcxpoj文件中发现了信息!
在这里插入图片描述

项目使用到摸一个库时,会在工程文件中写下它的路径和一串码,而这串码在库自己的工程文件中存在
在这里插入图片描述
于是我将在VS中搜索出所有出现这个库的工程文件(.sln, .vcxproj),将旧码全部替换成新码就可以了!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/134631
推荐阅读
相关标签
  

闽ICP备14008679号