在Visual Studio 2013下重新编译Crypto++ 5.6.2 for /MD版本
Rebuild Crypto++ 5.6.2 for /MD release under Visual Studio 2013
我想通过MSVC2013重建Crypto++,所以当我使用库能够用/MD或/MDd,而不是/MT或/MTd构建我的项目时,因为我正在使用QT 5.5.1与MSVC2013 32位编译器,似乎如果我想制作GUI界面-它正在使用/MD或/MDd!在本文中,第Static Versus Dynamic Linking
节提到了重建(而不是构建)的必要性,以及您如何从我的另一个问题中看到我这样做了,但它仅适用于调试模式。对于释放模式,从117到53的错误,但是同样的旧错误发生:
cryptlib.lib(cryptlib.obj):-1: error: LNK2038: mismatch detected for'RuntimeLibrary':值'MT_StaticRelease'不匹配值'MD_DynamicRelease' in main.obj
我正在做我在这里提到的
我想通过MSVC 2013重建Crypto++…
好的,这里的痛点是微软在2010年对MSBuild的更改。更糟糕的是,VCUpgrade在向上转换项目方面做得相当差。
为了帮助用户完成升级过程,Crypto++提供了一个名为vs2010.zip
的文件。该归档文件包含Visual Studio 2010及以上版本的预转换的解决方案文件、项目文件和过滤器。这些文件于2015年10月发布,发布候选版本为5.6.3。
升级后的解决方案文件大多是成功的。他们从IDE中正确构建了24个配置中的20个。其中4人第一次尝试失败;但该过程在第二次尝试时恢复并构建所有24个。我们知道这是一个依赖/排序问题,但我们不知道如何解决它。在如何控制批构建→全部构建的顺序中有一个关于堆栈溢出的开放问题。
现在有一个关于Visual Studio 2010和VCUpgrade主题的页面。参见Crypto++ wiki上的Visual Studio。
那篇文章是我多年前写的。你走对了路。在本文中…
我做了,但它只适用于调试模式。对于释放模式,从117到53的错误,但是同样的旧错误发生:
cryptlib.lib(cryptlib.obj):-1: error: LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MD_DynamicRelease' in main.obj
我们为你添加了一个ZIP文件。ZIP是一个预先转换的Visual Studio 2010解决方案和项目文件,利用动态运行时链接(/MD
和/MDd
)。(这不只是你一个人,因为这些年来很多人都问过这个问题)。
你的问题的解决办法是:
- 从Crypto++ wiki下载
vs2010-dynamic.zip
- 在现有的crypto++发行文件上解压缩。
我使用cryptopp从源/MD,构建在vs2013上使用最新的cryptopp版本(5.6.2)。您希望使用最新的加密或安全软件,而且它们可能存在固定的平台构建问题。
您引用的问题听起来像是使用/MT集构建项目的中间文件,即使后来更改为/MD(尽管很容易忘记将下拉菜单更改为"所有配置",并仅更改一个项目中的调试设置)。
首先清理解决方案,然后确保将每个项目更改为[粗体]中的/MD所有配置[粗体],然后再次清理解决方案。现在搜索并删除任何调试或发布文件夹和。obj .lib .dll文件,因为我不相信"干净的解决方案"。它只能得到它打算在当前设置下构建的文件,但链接器可能会在链接搜索(/verbose:lib)中找到更多。
- "error: no matching function for call to"构造函数错误
- 表示"accepting anything for this template argument" C++概念的通配符
- 如何在C++中从两个单独的for循环中添加两个数组
- 在Linux for Windows上编译C++代码时出错
- 调用专用模板时出错"no matching function for call to [...]"
- 为什么我的for循环不能正确获取argv
- 为什么我不能在 FOR LOOP 中使用 i/10,C++?
- Arduino:for/while/if在void setup()或void loop()之前?——错误:之前需要不合格
- 在基于范围的for循环中使用结构化绑定声明
- 如何使用Crypto++并为RSA返回可打印的字节/字符数组
- 通过for循环使用用户输入填充列表
- 使用for循环检查数组中的重复项
- 在for循环中使用auto vs decltype(vec.size())来处理字符串的向量
- 为什么 const std::p air<K,V>& 在 std::map 上基于范围的 for 循环不起作用?
- 正在使用for循环创建QScatterSerie
- Python中的for循环与C++有何不同
- std::memory_order for std::atomic:<T>:wait
- 在更改for循环的第三部分后,未使用for循环结果
- 在 for 循环中查找问题时遇到困难
- 在Visual Studio 2013下重新编译Crypto++ 5.6.2 for /MD版本