QT 和 Crypto++ 以及 /MTd

2024-06-30

我有两个带有 MSVC2013 32 位编译器的 QT 5.5 项目。第一个是 Qt 控制台应用程序,正在使用 crypto++,这两个在 pro 文件中:

QMAKE_CXXFLAGS_RELEASE += /MT
QMAKE_CXXFLAGS_DEBUG += /MTd

第二个是 Qt 小部件应用程序,其中构建了基于对话框的 GUI。单独地,每个都成功启动,但单独地,在 pro 文件中添加相同内容的 GUI 项目(如上面的这些)也给出了相同的旧错误:

qtmain.lib(qtmain_win.obj):-1: 错误: LNK2038: 检测到不匹配 “RuntimeLibrary”:值“MD_DynamicRelease”与值不匹配 main.obj 中的“MT_StaticRelease”

有没有办法以某种方式将这两个项目结合起来?还请解释一下含义和区别:

multi-threaded DLL(/MD)
multi-threaded (/MT)

动态库和 /MD 之间以及静态库和 /MT 之间有什么联系?


qtmain.lib(qtmain_win.obj):-1: error: LNK2038: mismatch detected for 'RuntimeLibrary':
value 'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in main.obj

这是由于混合和匹配 C/C++ 运行时库造成的。

Crypto++ 有四个项目:Cryptlib, Cryptest, Cryptdll and Dlltest。让事情变得更加复杂的是,Cryptlib, Cryptest重用 DLL 导入配置Cryptdll and Dlltest。一旦你理解了发生了什么,它就具有了很多逻辑意义。

您正在链接非 DLL 导入Cryptlib,并且它使用静态链接。您需要切换到针对动态链接的运行时库的链接。为此,请参阅编译 Crypto++ 并将其集成到 Microsoft Visual C++ 环境中 http://www.codeproject.com/Articles/16388/Compiling-and-Integrating-Crypto-into-the-Microsof。它很旧,但仍然适用。

你也应该avoid任何与DLL_Output在它的路径中。尽管它使用正确的运行时库链接,但您正在尝试链接 DLL。该 DLL 的存在只有一个目的 - 作为 FIPS 140-2 验证模块的安全边界。通常是not您正在寻找什么,通常是wrong图书馆的工作。

因为你也应该avoid任何与DLL_Output,打开配置管理器并删除任何与 DLL 相关的内容(例如,DLL-Import Release)。您还应该完全删除Cryptdll and Dlltest简化您的生活的项目。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

QT 和 Crypto++ 以及 /MTd 的相关文章

  • C#:迭代数据表:Rows、Select() 或 AsEnumerable()

    foreach DataRow row in myDataTable Select foreach DataRow row in myDataTable AsEnumerable foreach DataRow row in myDataT
  • C# 中线程之间发送消息

    如何在线程之间发送和接收消息 例如 一种解决方案是共享并发队列 尽管它的名称 并发队列 http msdn microsoft com en us library dd267265 aspx 这将允许您将一个对象从一个线程入队 并让另一个线
  • 配置 SourceTrail 以接受带有 @ 语法的嵌入式 c/c++ 头文件

    我正在尝试使用 Sourcetrail https www sourcetrail com https www sourcetrail com 快速了解 pic18 系列微控制器的一些旧嵌入式 c c 源代码 导入硬件包含文件时出现错误 该
  • 如何将流写入内存流?

    public void doprocess TcpClient client MemoryStream ms new MemoryStream Stream clStream client GetStream byte buffer 1 n
  • 类内枚举前向声明是否可能? [复制]

    这个问题在这里已经有答案了 我知道在 C 11 中可以转发声明枚举类型 如果提供了存储类型 例如 enum E short void foo E e enum E short VALUE 1 VALUE 2 但我想转发声明一个类中定义的枚举
  • 格式化具有 X 位小数和 InvariantCulture 的数字?

    我想使用格式化数字ToString CultureInfo InvariantCulture 并且精确到小数点后 5 位 这可以使用ToString N5 我怎样才能同时做这两件事 怎么样使用重载既需要格式又需要文化 http msdn m
  • 在 OpenCV C++ 中使用 gpu::GpuMat

    我想知道如何修改gpu GpuMat 事实上我想知道是否可以使用gpu GpuMat like a cv Mat 我想做这样的事情 cv namedWindow Result cv Mat src host cv imread lena j
  • 在 C++ 中将注册表值设置为宽字符串 (WCHAR)

    我正在尝试在 C 中向注册表添加宽字符串 问题是RegSetValueEx 函数不支持宽字符 仅支持BYTE type BYTE unsigned char WCHAR myPath C exe RegSetValueExA HKEY CU
  • 浮点指令异常——FLDZ故障?

    I am trying to debug the problem I posted earlier here C and pin tool very weird DOUBLE variable issue with IF statement
  • 将 wav 文件存储在数组中

    我需要一种快速方法来将 wav 文件的所有样本存储在数组中 我目前正在通过播放音乐并存储来自示例提供程序的值来解决这个问题 但这不是很优雅 从 NAudio 演示中 我有带有此方法的 Audioplayer 类 private ISampl
  • 使用迭代器与索引访问向量元素有什么区别?

    使用迭代器与索引访问向量元素有什么优点 为什么迭代器比索引更好 在索引不可用的情况下 例如 std list 对于 例子 在通用函数接受迭代器的情况下 叫做 编写应该使用的函数模板时 不止一种容器类型 他们的存在是为了创造均匀性在所有容器和
  • 如何从源代码编译picoProlog?

    我是计算机科学专业的学生 正在学习 Prolog 逻辑编程 我发现了一个有趣的 Prolog 解释器 picoProlog http spivey oriel ox ac uk corner Logic Programming http s
  • 如何在类型依赖于派生类的基模板类中声明成员?

    给定一个使用 CRTP 的基类 我正在考虑在基模板类中声明一个成员 其中类型依赖于派生类 虽然以下内容按预期工作 template
  • 尝试写入事件日志时出错 - 无法打开源“SourceName”的日志。您可能没有写入权限

    目前 我们正在尝试将现有的经典 ASP 页面集成到记录事件日志的新方法中 我们通过调用公开为 COM 对象的 NET 程序集来实现此目的 该程序集实际记录到事件日志中 这一切都正常工作 但是当我们尝试写入事件日志时 我们收到错误 无法打开源
  • 仅仅“抛出”一次捕获有好处吗?

    与一位同事就他将大部分功能包装在 try catch 中的做法进行了 激烈辩论 但 catch 中只有一个 抛出 例如 Private sub foo try Do something catch throw And nothing els
  • 在 C++ 中调用函数有多少开销?

    许多文献都谈到使用内联函数来 避免函数调用的开销 但我还没有看到可量化的数据 函数调用的实际开销是多少 即通过内联函数我们可以实现什么样的性能提升 在大多数架构上 成本包括将所有 或部分 或没有 寄存器保存到堆栈 将函数参数推送到堆栈 或将
  • 从枚举获取 DescriptionAttribute [重复]

    这个问题在这里已经有答案了 我有一个枚举 用于查找协调字符串值 其中一个枚举中有一个空格 因此我尝试使用描述属性来查找该值 在找到 DescriptionAttribute 后 我在转换回公共类时遇到问题 public class Addr
  • 将 byte[] 作为文件打开,而不先将其实际保存为文件

    打开以 byte 形式存储在数据库中的 Word 文件的最佳方法是什么 我必须将一些文档存储在 Access 数据库中 Word 文件 2003 及更高版本 并存储在严格通过 CD 运行的应用程序上 不幸的是 它们必须位于数据库中 并且不能
  • 使用本机 Win32 读取“C”中的文本文件(Unicode)

    我有一个使用 CreateFile 和 WriteFile 创建的面向行的文本文件 Unicode 使用 ReadFile 以二进制流形式读取该文件非常简单 但需要额外的低级处理才能将其分成几行 是否有 Win32 函数可以为我执行此操作
  • “auto_ptr”和 STL 容器:编写错误用法的示例

    读完本教程后提出这个问题 http www cprogramming com tutorial auto ptr html http www cprogramming com tutorial auto ptr html 在那里你可以找到以

随机推荐

  • 无需 Excel 和 OLEDB 即可读取 .xlsx

    是否有机会在 C 中读取 xlsx 文件 而无需在客户端上安装 Excel 并且没有可用的 OLEDB 连接 该应用程序是一个用 VS2005 C NET Framework 2 0 编写的 Winforms 项目 这里的这个怎么样 EPP
  • SQL 代理作业 - 连接可能未正确配置,或者您可能对此连接没有正确的权限?

    通过 SQL 代理运行 SSIS 包时出现此错误 无法获取连接 ORACLE ADO NET 连接可能未正确配置 或者您可能对此连接没有正确的权限 当我以 SQL 代理用户身份登录并直接运行 ssis 包时 一切都很好 当我然后通过 SQL
  • iPhone 开发 - XMLParser 与 libxml2 与 TouchXML

    我找不到这些解析技术的比较 哪一种最常用 问候 穆斯塔法 NSXMLParser 是一个SAX http en wikipedia org wiki Simple API for XML解析器 这意味着它遍历 XML 文档 并通知您 通过委
  • 将多对多关系中的所有相关记录分组,SQL 图形连接组件

    希望我错过了一个简单的解决方案 我有两张桌子 其中包含一份公司列表 第二个包含出版商列表 两者之间的映射是多对多的 我想要做的是将表 A 中与表 B 中的发布商有任何关系的所有公司捆绑或分组 反之亦然 最终结果看起来像这样 GROUPID
  • c# 变量声明上的泛型,这可能吗?

    我有以下问题 public class MyClass
  • Android 删除发件箱中的短信

    在 Android KitKat 之前 可以使用以下方法发送 SMS 消息 而无需将其存储在设备上已安装消息应用程序的已发送文件夹中 SmsManager sms SmsManager getDefault sms sendTextMess
  • HTML5 输入类型范围,带有最小值滑块、最大值滑块和刻度

    我必须实现 HTML5 输入类型 Range
  • 带有音频和视频过滤器的 ffplay / ffmpeg 设置表

    问候 我想用 ffplay 创建一个表 显示音频和视频监控 来自这样的信号 不幸的是我只能做视频部分 ffplay i bar mxf vf split 4 a b c d d vectorscope m color3 g color dd
  • RCTBatchedBridge 已弃用,并将在未来的 React Native 版本中删除

    我在我的反应本机应用程序中面临这个警告 如何解决这个问题任何建议都会有帮助 我的也有同样的问题现有的本机应用程序 我跟着与现有应用程序集成 https facebook github io react native docs integra
  • 基于nextjs中的user-agent重写

    我在 NextJs 中有一个多域网站 我想根据域和设备类型获取数据 现在我可以识别该域 但我希望在重写规则中使用用户代理并在 getStaticProps 函数中使用它 这是我在 next config js 文件中的规则 async re
  • 在简历上重新加载 SharedPreferences? (或如何刷新/重新加载活动)

    当我从一项活动恢复到另一项活动时 如何重新加载 SharedPreferences 如果我继续 用户可能已经更改了设置 是否可以重新加载 SharedPreferences 或者我是否需要刷新 重新加载活动 如果 那么如何 获取和设置方式没
  • npm 安装完成时播放声音或通知

    我在想 在 npm 完成运行任务 例如长时间安装 后获取通知 声音或弹出窗口 会有所帮助且高效吗 我正在使用 vscode 并在集成终端中运行大部分命令 在等待它完成的过程中 我最终花费了更多时间来执行其他非生产性任务 所以我们可以把它分解
  • 如何获取当前页面样式表作为字符串?

    假设我当前的页面如下所示 我想
  • 打印整个java项目的源代码

    我必须打印 java 项目的整个源代码 最终版本应如下所示 Eclipse 文件 gt 打印 但使用此功能一次只能打印一个文件 有没有一种方法可以使用一个命令打印 或创建 pdf rtf 整个项目 所有 java xml 文件 我在 win
  • 如何增加饼图(Chart.JS)的大小?

    我正在生成一个带有图例的饼图 如下所示 如您所见 馅饼小得可怜 我更喜欢它的两倍高和两倍宽 这是我正在使用的代码 var formatter new Intl NumberFormat en US Chart pluginService r
  • 推迟内联 JavaScript 执行? [复制]

    这个问题在这里已经有答案了 在我的网站中 我有许多内联 JavaScript 片段 其中大多数都需要 jquery 和类似的东西 但我想将 jquery 加载推迟到页面渲染之后 这意味着 我的内联 javascript 将在加载 jquer
  • GSL 中的错误 - 根查找

    大家好 我在让我的程序与 GSL 根查找一起工作时遇到问题 我正在尝试找到我的方程的解 我正在寻找 64 行数据的解决方案 但在某些特定行中 程序无法继续 可能是因为不存在好的解决方案 但我希望程序在找不到解决方案时跳过行 但我的程序有时会
  • 如何在其他脚本中包含(源)R 脚本

    我创建了一个实用程序 R 脚本 util R 我想从项目中的其他脚本中使用它 确保此脚本定义的函数可在我的其他脚本中运行的正确方法是什么 我正在寻找类似的东西require函数 仅在尚未加载的情况下加载包 我不想打电话source util
  • Objective C - CAGradientLayer 覆盖 UILabel 中的文本?

    我正在尝试添加一个渐变层到我的UILabel由于某些原因CAGradientLayer覆盖我的文字 我做错了什么吗 void viewDidLoad super viewDidLoad CAGradientLayer gradient CA
  • QT 和 Crypto++ 以及 /MTd

    我有两个带有 MSVC2013 32 位编译器的 QT 5 5 项目 第一个是 Qt 控制台应用程序 正在使用 crypto 这两个在 pro 文件中 QMAKE CXXFLAGS RELEASE MT QMAKE CXXFLAGS DEB