【vs2022】MSVCRTD.lib 4098: 默认库“libcmtd.lib”与其他库的使用冲突

news2024/11/25 18:27:05

  • verbose-print-

  • 整理:warning LNK4098: 默认库“LIBCMT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library 讲解的非常详细:

Linker 加入命令行选项

To set this linker option in the Visual Studio development environment
Open the project’s Property Pages dialog box. For details, see Set C++ compiler and build properties in Visual Studio.

Select the Configuration Properties > Linker > Command Line property page.

Add the option to the Additional Options box.

在Link–>cmd中加入/verbose:lib,查看打印的顺序:

在这里插入图片描述

默认库“libcmtd.lib”与其他库的使用冲突

2>MSVCRTD.lib(initializers.obj) : warning LNK4098: 默认库“libcmtd.lib”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
  • 项目----项目属性-----配置属性------链接器----- 命令行” 添加: /NODEFAULTLIB:“libcmt.lib”

- 看起来是 MSVCRTD.lib 与 libcmt.lib" 冲突

  • MSVCRTD.lib是DEBUG模式, 使用DLL的多线程-

  • 需要忽略掉:libc.lib, libcmt.lib, msvcrt.lib, libcd.lib, libcmtd.lib

  • libcmt.lib 是 Release版的多线程库。

  • msvcrt.lib是VC中的Multithreaded DLL 版本的C运行时库。

  • 而libcmt.lib是Multithreaded的运行时库

在这里插入图片描述

  • 例如openssl 是 /MD进行编译的,也就是说openssl静态库是默认用的Multithreaded DLL 版本的C运行时库。

  • 可以如下忽略:
    /NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:msvcrt.lib /NODEFAULTLIB:libcd.lib /NODEFAULTLIB:libcmtd.lib /NODEFAULTLIB:msvcrtd.lib
    在这里插入图片描述

LNK4098 错误

  • 运行时库现在包含可防止混合不同类型的指令。如果试图在同一个程序中使用不同类型的运行 时库或使用调试和非调试版本的运行时库,则将收到此警告。例如,如 果编译一个文件以使用一种运行时库,而编译另一个文件以使用另一种运行时库(例如单线程运行时库对多线程运行时库),并试图链接它们,则将得到此警告。应 将所有源文件编译为使用同一个运行时库。有关更多信息,请参见使用运行时库(/MD、/MT 和 /LD)编译器选项。

可以 使用链接器的 /VERBOSE:LIB 开关来确定链接器搜索的库。如果收到 LNK4098,并想创建使用如单线程、非调试运行时库的可执行文件,请使用 /VERBOSE:LIB 选项确定链接器搜索的库。链接器作为搜索的库输出的应是 LIBC.lib,而非 LIBCMT.lib、MSVCRT.lib、LIBCD.lib、LIBCMTD.lib 和 MSVCRTD.lib。对每个要忽略的库可以使用 /NODEFAULTLIB,以通知链接器忽略错误的运行时库。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/701516.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Chapter 1: Introduction - Why Program? | Python for Everybody 讲义_En

文章目录 Python for Everybody课程简介Python for Everybody (Why Program?)Why should you learn to write programs?Creativity and motivationComputer hardware architectureUnderstanding programmingWords and sentencesConversing with PythonTerminology: Interpret…

MyBatis全篇

文章目录 MyBatis特性下载持久化层技术对比 搭建MyBatis创建maven工程创建MyBatis的核心配置文件创建mapper接口创建MyBatis的映射文件测试功能加入log4j日志功能加入log4j的配置文件 核心配置文件的完善与详解MyBatis的增删改查测试功能 MyBatis获取参数值在IDEA中设置中配置文…

Java Web HTMLCSS(2)23.6.28

2,CSS 2.1 概述 CSS 是一门语言,用于控制网页表现。我们之前介绍过W3C标准。W3C标准规定了网页是由以下组成: 结构:HTML表现:CSS行为:JavaScript CSS也有一个专业的名字:Cascading Style Sh…

Springboot 如何自动上传秒杀商品数据到Redis中上架商品

一、概述 如下图秒杀活动: 在这个秒杀活动中,需要自动上架一定时间段的商品,我们如何实现自动上传呢? 我们可以通过定时任务来实现的。在秒杀活动开始前,需要将商品信息存储到数据库中,并设置好库存和价格…

Linux学习之进程的通信方式信号:kill命令

kill -l可以看到可以使用信号量。 把下边的内容使用编辑器,比如vim写到./a.sh。 #!/bin/bashecho $$ while : # 无限循环 do: donecat a.sh看一下文件里边的内容。 chmod ur,ux a.sh给当前用户赋予a.sh文件的写和执行权限。 在第一个端口里边,使用./a…

在 TypeScript 中有效地使用 keyof 和 typeof 来表示类型

在本文中,我们将学习如何通过组合类型运算符和枚举来提取和声明常量类型typeof,以使您的代码库得到优化。keyof 先决条件 为了获得更好的编码体验,您应该在 IDE 中安装 TypeScript,例如VSCode。它将为您提供许多基本功能&#xff…

Linux——进程通信之共享内存

目录 一. 回顾上文 二.共享内存 1.定义 2.特点: 3.实现步骤: 如下为成功链接共享内存使用权的完整步骤: 4.函数介绍 4.1shmget函数 4.1.2参数介绍 4.2ftok函数: 4.2.1参数介绍 关于ftok(); shmget();函数的代码实验…

基于当量因子法、InVEST、SolVES模型等多技术融合在生态系统服务功能社会价值评估中的应用

查看原文>>>基于当量因子法、InVEST、SolVES模型等多技术融合在生态系统服务功能社会价值评估中的应用及论文写作、拓展分析 本文将讲述用于评估生态系统服务价值的当量因子法、InVEST模型、SolVES模型及其原理,您将学会三种模型的原理与运行方法&#xf…

基于Docker的JMeter分布式压测

目录 前言: Docker Docker在JMeter分布式测试中的作用 Dockerfile用于JMeter基础: Dockerfile for JMeter Server / Slave: 总结 前言: 基于Docker的JMeter分布式压测是一种将JMeter测试分布在多个容器中进行的方法,可以提高…

《计算机系统2》学习笔记

目录 计算机系统漫游 Amdahl定理 信息的表示和处理 信息存储 进制转化 小端法 大端法 布尔代数 位级运算 逻辑运算 移位运算 整数表示 无符号数编码 补码编码 有符号数和无符号数之间的转换 扩展数的位表示 截断数字 整数运算 无符号加法 无符号数求反 有…

信号链噪声分析5

目录 概要 整体架构流程 技术名词解释 技术细节 小结 概要 提示:这里可以添加技术概要 残余相位噪声测量法消除了外部噪声源(例如电源或输入时钟)的影响,而绝对相位 噪声测量法包含了这些来源的噪声。残余相位噪声装置可以隔离并…

Upload靶场通关笔记

文章目录 一、Pass-011.抓包上传2.获取上传路径3.工具验证 二、Pass-02三、Pass-031.使用httpd.conf自定义后缀2.提取上传文件名3.工具测试4.注意点四、Pass-041.上传.htaccess2.上传图片3.工具测试 五、Pass-05六、Pass-061.空格.号绕过2.工具测试 七、Pass-07八、Pass-081.特…

联想黄莹:6G将是全智能应用下连接虚拟与现实世界的“超级通道”

6月28日,以“时不我待”为主题的MWC上海世界移动通信大会正式开幕。在当天下午举办的“6G愿景及关键推动力”大会论坛上,联想集团副总裁、联想研究院5G实验室负责人黄莹博士发表了“共铸辉煌:对6G技术和应用的思考与展望”主题演讲。他认为&a…

STM32F407 GPIO口输出配置配置步骤

STM32F407ZGT6 是意法半导体(STMicroelectronics)公司推出的一款高性能ARM Cortex-M4核心的32位微控制器(MCU)。它是 STM32F4 系列的一员,具备强大的处理能力和丰富的外设功能,适用于各种应用领域。 【1】…

3.6.6.异步SIGIO : fcntl(F_GETFL、F_SETFL、O_ASYNC、F_SETOWN) 3.6.7.存储映射IO

3.6.6.异步IO :SIGIO 3.6.6.1、何为异步IO (1)几乎可以认为:异步IO就是操作系统用软件实现的一套中断响应系统。 (2)异步IO的工作方法是:我们当前进程注册一个异步IO事件(使用signal注册一个信号SIGIO的处理函数)&…

【Django学习】(十)模型序列化器_关联字段序列化

这篇文章是针对模型类序列化器以及如何关联字段序列化 进行深入讲解的; class ProjectModelSerializer(serializers.ModelSerializer):email serializers.EmailField(write_onlyTrue)interfaces InterfaceModelSerializer(label所属接口的信息, help_text所属接口…

git常见操作汇总

存档,方便本人查询~ 除了add、commit、push、pull外有些操作也是需要掌握的~在复习之前先准备一下需要的项目: mkdir git-demo1 cd git-demo1 git init基础操作 # 在工作区新增一个README.md文件,并写入 # Hello World# 查看哪些原件做了修…

Java安全——安全管理器

Java安全 安全管理器 Java安全管理器是一个Java安全模型中的一个组件,主要的作用是提高Java应用程序的安全性。Java应用程序中的每个线程都会对安全管理器进行检查,在执行代码之前,会先经过安全管理器的核验,安全管理器根据代码来…

Flink SQL之Temporal Joins

1.Temporal Joins(时态JOIN) 时态表是一个随时间演变的表,在Flink中也称为动态表。 时态表中的行与一个或多个时态周期相关联,并且所有Flink表都是时态的(动态的)。时态表包含一个或多个版本化的表快照&a…

Oracle数据库中的包的介绍及示例

Oracle的包是一种封装存储过程,函数,变量和游标等代码对象的方法。包可以视为一组相关的程序单元,它们共享相同的命名空间和存储空间。包可以被看做是一个数据库程序库,它包含一个或多个程序单元,这些单元可以被视为一…