当前位置: 首页 > 知识库问答 >
问题:

在Visual Studio 2013下为/MD版本重建Crypto 5.6.2

屈俊远
2023-03-14

我想通过MSVC 2013重建Crypto,所以当我使用库时,能够使用/MD或/MDd而不是/MT或/MTd来构建我的项目,因为我使用的是QT 5.5.1和MSVC2013 32位编译器,似乎我想制作GUI界面-它使用的是/MD或/MDd!在本文的静态链接与动态链接部分提到了重建(而非构建)的必要性,以及从我的另一个问题中可以看出我是如何做到这一点的,但它只适用于调试模式。对于释放模式,错误从117转到53,但再次出现相同的旧错误:

加密库。lib(cryptlib.obj):-1:错误:LNK2038:检测到“RuntimeLibrary”不匹配:值“MT\u StaticRelease”与main中的值“MD\u DynamicRelease”不匹配。obj公司

我正在做我在这里提到的事情

共有2个答案

魏臻
2023-03-14

我从源代码使用cryptopp /MD,基于vs2013构建,使用最新的cryptopp版本(5.6.2)。您希望了解最新的加密或安全软件,另外它们可能有固定的平台构建问题。

您引用的问题听起来像是使用/MT集构建项目时的中间文件,即使后来将其更改为/MD(尽管很容易忘记将下拉列表更改为“所有配置”,并且只更改一个项目中的调试设置),这很危险。

首先清理解决方案,然后确保您将每个项目更改为在[粗体]所有配置[粗体]中 /MD,然后再次清理解决方案。现在搜索并删除任何调试或发布文件夹和. obj. lib. dll文件,因为我不信任“清理解决方案”。它只能获取它打算在当前设置下构建的文件,但链接器可能会在链接搜索中找到更多信息(/详细:lib)。

然后全部重建。

相弘方
2023-03-14

我想通过MSVC 2013重建Crypto。。。

好的,所以这里的痛点是微软在2010年对MSBuild的更改。更糟糕的是,VC升级在升级项目方面做得相当糟糕。

为了帮助用户进行升级,Crypto提供了一个名为vs2010的文件。邮政编码。存档包含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)。(其实不仅仅是你,因为多年来很多人都在问这个问题)。

解决您的问题的方法是:

  1. 下载vs2010动态。来自加密wiki的邮政编码
  2. 在现有加密分发文件的顶部解压
 类似资料:
  • 我在与Maven一起的Java项目中使用了Launch4j插件。当我将project编译为exe并在未安装Java的Windows系统上运行时,它重定向(自动打开web浏览器)下载Java但带有32位版本。我想重定向下载64位最新版本。有可能吗? 我在Maven中的插件定义看起来像 我还尝试在中添加但无法结束编译并返回以下错误

  • 我试图运行一个分级,但我得到以下错误: 不管怎样,我都会得到一个错误。我对Gradle是新的,非常困惑。如果有人能给我点启示,我将不胜感激。

  • null null null null null 您可以使用'--Warning-Mode All'来显示各个弃用警告,并确定它们是来自您自己的脚本还是插件。 参见https://docs.gradle.org/7.2/userguide/command_line_interface.html#sec:command_line_warnings 在16s 25个可操作任务中构建失败:6个已执行,1

  • 我有一个具有以下结构的maven项目 即Project有它的pom.xml(作为pom的包)并有模块。每个模块都有一个节中,可以将其设置为“project”的工件(在根pom.xml中定义),也可以将其设置为任何其他project2/project3/projectn工件。 现在,由于这个原因,我看看如果Project1的根pom.xml设置为0.0.1-snapshot,并且如果我想创建一个版本

  • 我安装了AndroidStudio,JDK1.7和1.8都有。当我执行应用程序时,它给了我一个错误,它需要用JDK1.8运行。我要归档 我的系统变量设置为jdk1.8路径。我卸载了Android Studio并重新安装了它,但没有任何工作。

  • 错误日志: java.lang.IllegalArgumentException:Plugin[Ingest-geoip]是为Elasticsearch版本6.2.4构建的,但版本6.5.0运行在org.ellasticSearch.plugins.plugins.service.verifyCompatibility(plugins Service.java:339)~[ellasticSear