如何理解C run-time library (C运行时库)

warning LNK4098: 默认库“msvcrtd.lib”与其他库的使用冲突;请使用 /NODEFAULTLIB:library 1>LINK : warning LNK4098: 默认库“msvcrtd.lib”与其他库的使用冲突;请使用 /NODEFAULTLIB:library1>LINK : warning LNK4098: 默认库“LIBCMTD”与其他库的使用冲突;请使用 /NODEFAULTLIB:library。 阅读详情

如何理解C run-time library (C运行时库)
注: 以下内容部分引自CSND中相关讨论的帖子,并结合自己的理解整理而成。仅供参考。

1)运行时库就是 C run-time library,是 C 而非 C++ 语言世界的概念:取这个名字就是因为你的 C 程序运行时需要这些库中的函数.

2)C 语言是所谓的“小内核”语言,就其语言本身来说很小(不多的关键字,程序流程控制,数据类型等);所以,C 语言内核开发出来之后,Dennis Ritchie 和 Brian Kernighan 就用 C 本身重写了 90% 以上的 UNIX 系统函数,并且把其中最常用的部分独立出来,形成头文件和对应的 LIBRARY,C run-time library 就是这样形成的。

3) 随后,随着 C 语言的流行,各个 C 编译器的生产商/个体/团体都遵循老的传统,在不同平台上都有相对应的 Standard Library,但大部分实现都是与各个平台有关的。由于各个 C 编译器对 C 的支持和理解有很多分歧和微妙的差别,所以就有了 ANSI C;ANSI C (主观意图上)详细的规定了 C 语言各个要素的具体含义和编译器实现要求,引进了新的函数声明方式,同时订立了 Standard Library 的标准形式。所以C运行时库由编译器生产商提供。至于由其他厂商/个人/团体提供的头文件和库函数,应当称为第三方 C 运行库(Third party C run-time libraries)。

4)C run-time library里面含有初始化代码,还有错误处理代码(例如divide by zero处理)。你写的程序可以没有math库,程序照样运行,只是不能处理复杂的数学运算,不过如果没有了C run-time库,main()就不会被调用,exit()也不能被响应。因为C run-time library包含了C程序运行的最基本和最常用的函数。


5) 到了 C++ 世界里,有另外一个概念:Standard C++ Library,它包括了上面所说的 C run-time library 和 STL。包含 C run-time library 的原因很明显,C++ 是 C 的超集,没有理由再重新来一个 C++ run-time library. VC针对C++ 加入的Standard C++ Library主要包括:LIBCP.LIB, LIBCPMT.LIB和 MSVCPRT.LIB

6)Windows环境下,VC提供的 C run-time library又分为动态运行时库和静态运行时库。
动态运行时库主要是DLL库文件msvcrt.dll(or MSVCRTD.DLL for debug build),对应的Import library文件是MSVCRT.LIB(MSVCRTD.LIB for debug build)
静态运行时库(release版)对应的主要文件是:
LIBC.LIB (Single thread static library, retail version)
LIBCMT.LIB (Multithread static library, retail version)

msvcrt.dll提供几千个C函数,即使是像printf这么低级的函数都在msvcrt.dll里。其实你的程序运行时,很大一部分时间时在这些运行库里运行。在你的程序(release版)被编译时,VC会根据你的编译选项(单线程、多线程或DLL)自动将相应的运行时库文件(libc.lib,libcmt.lib或Import library msvcrt.lib)链接进来。

编译时到底哪个C run-time library联入你的程序取决于编译选项:
/MD, /ML, /MT, /LD   (Use Run-Time Library)
你可以VC中通过以下方法设置选择哪个C run-time library联入你的程序:
To find these options in the development environment, click Settings on the Project menu. Then click the C/C++ tab, and click Code Generation in the Category box. See the Use Run-Time Library drop-down box.

从程序可移植性考虑,如果两函数都可完成一种功能,选运行时库函数好,因为各个 C 编译器的生产商对标准C Run-time library提供了统一的支持.

 

本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/visame/archive/2008/08/07/2781912.aspx

LeRobot 入门教程(十一)π0(Pi0)π0.5(Pi0.5)训练、推理、部署 本文介绍了Physical Intelligence公司开发的π₀和π₀.₅系列通用机器人控制视觉-语言-动作模型。π₀作为首款基础模型,融合流匹配、跨实体训练等技术,支持50Hz高频控制。π₀.₅是其升级版,通过异构数据协同训练解决开放世界泛化问题,在Libero基准测试中表现优异。文章详细说明了两个模型的安装要求、使用方法、训练策略及关键参数配置,包括混合精度训练、梯度检查点等优化技术,为机器人在多样化场景中的语义理解和动作控制提供了完整解决方案。 阅读详情

相关推荐

大数据实战:Python与MySQL在足球赔率分析中的高效应用

本文详细介绍了如何利用Python与MySQL进行大数据实战,实现足球赔率的高效分析。通过对比Excel处理的局限性,阐述了数据库在处理百万级数据时的速度优势。文章提供了从环境搭建、使用pymysql连接数据库、利用pandas进行数据清洗与分析,到构建自动化分析系统的完整流程,旨在帮助读者将大数据技术应用于实际业务场景,显著提升数据处理与洞察效率。

weixin_29080843的博客 444

Microsoft Visual C++ Runtime Library Runtime Error的解决办法

打开浏览器时,出现Microsoft Visual C++ Runtime Library Runtime Error错误,初步估计是软件冲突,可能有多种出错的方式,我的是浏览器自动关闭。 一、 有些时候,在你安装、运行某个软件,可能会得到这样一个错误提示:   Microsoft Visual C++ Runtime Library   Runtime Error!   Program:c:/w...

m0_54409538的博客 9万+

避坑指南:C#用S7NetPlus读写西门子PLC字符串(String/WString)的完整方案

本文详细解析了C#通过S7NetPlus读写西门子PLC字符串(String/WString)的完整方案,包括内存布局、编码差异和字节序处理等关键技术细节。提供了实战优化的代码示例和常见问题排查指南,帮助开发者避免乱码、截断等常见陷阱,提升工业自动化项目的开发效率。

weixin_32956805的博客 320

【免费下载】 Microsoft Visual C++ Runtime 下载指南

Microsoft Visual C++ Runtime 下载指南 【下载地址】MicrosoftVisualCRuntime下载指南 Microsoft Visual C++ Runtime 是微软发布的一个重要组件,它允许运行由Visual C++编写的程序。许多应用程序依赖这些运行时库才能正确运行。如果你遇到因为缺...

gitblog_06527的博客 3万+

Blender学习笔记——制作向量场

#下载Blender - UE4 - FGA Vector Field Editor插件的压缩包,Github上的下载地址如下:https://github.com/isathar/Blender_UE4_VectorFieldEditor #下载并解压后将FGA VectorFields文件夹复制到C:\Program Files\Blender Foundation\Blender 2.83\2.83\scripts\addons目录下,此步骤可根据blender安装的位置自行调整,只要放入addon

wychao2020的博客 1724

C#教程

C# 教程 C# 是一个简单的、现代的、通用的、面向对象的编程语言,它是由微软(Microsoft)开发的。 本教程将告诉您基础的 C# 编程,同时将向您讲解 C# 编程语言相关的各种先进理念。 现在开始学习 C#! C# 在线工具 谁适合阅读本教程? 本教程有助于初学者理解基础的 C# 编程。在学习完本教程后,您将到达一个中级的 C# 编程水平。

zm1_1zm 1万+

LINK : warning LNK4098: 默认库“MSVCRT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library

VS2013运行MFC程序错误提示 LINK : warning LNK4098: 默认库“MSVCRT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library 解决方法: 编译选项设置如下: 1、【项目】->【属性】->【配置属性】->【C/C++】->【代码生成】->【运行时库】,设置为“多线程DLL(/MD) 2、【项目】->【属性】-&g...

耶律大石的博客 2万+

FPGA—DHT11数字温湿度传感器

1. DH1T11温湿度传感器与DS18B20温湿度传感器非常类似,都是严格按照时序要求写代码。建议可以比较学习。2. 显示温度与湿度部分的数据处理,采用 X10 进行在数码管上的移一位显示,配合了数码管小数部分的显示特点又区分了温度与湿度。3. 程序是按照一个接一个状态及顺序跳转的,建议使用状态机。说明:本人使用的是野火家Xilinx Spartan6系列开发板及配套教程,以上内容如有疑惑或错误欢迎评论区指出,或者移步B站观看野火家视频教程。

m0_72885897的博客 4778

C语言运行时库详解

<br />网址:http://blog.youkuaiyun.com/jxth152913/archive/2010/07/02/5708369.aspx<br />运行时库是程序在运行时所需要的库文件,通常运行时库是以LIB或DLL形式提供的。C运行时库诞生于20世纪70年代,当时的程序世界还很单纯,应用程序都是单线程的,多任务或多线程机制在此时还属于新观念。所以这个时期的C运行时库都是单线程的。<br /><br />  随着操作系统 多线程技术的发展 ,最初的C运行时库无法满足程序的需求,出现了严重的问题 。C

GUANYIJUN123的专栏 1776

Allegro如何输出ODB文件操作指导

在PCB设计完成之后,需要输出生产文件用于生产加工,除了gerber文件可以用生产制造,ODB文件同样也可以用于生产,如下图。用Allegro如何输出ODB文件,具体操作如下。如何输出ODB文件操作指导。

weixin_54787054的博客 7203

游戏开发中的CV:实时动作捕捉与虚拟交互

游戏开发中的CV:实时动作捕捉与虚拟交互​ ,人工智能,计算机视觉,大模型,AI,在当今游戏产业中,玩家对游戏体验的要求日益提高,追求更加真实、沉浸的交互感受。计算机视觉(Computer Vision,CV)技术的飞速发展,为游戏开发带来了革命性的突破,其中实时动作捕捉与虚拟交互技术更是成为提升游戏品质的核心驱动力。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 16万+

理解C run-time library (C运行时库)

1)运行时库就是 C run-time library,是 C 而非 C++ 语言世界的概念:取这个名字就是因为你的 C 程序运行时需要这些库中的函数. 2)C 语言是所谓的“小内核”语言,就其语言本身来说很小(不多的关键字, 程序流程控制,数据类型等);所以,C 语言内核开发出

jiahehao的专栏 1321

2025年最新自动化/控制保研夏令营&预推免面试真题分享(东南大学苏州校区/华东理工/南航/天大)

笔者来2021级本科自动化专业,以下部分将介绍我在夏令营以及预推免期间发生经历和问题。

Control Everything 2583

如何理解C run-time library (C运行时库)

 1)运行时库就是   C   run-time   library,是   C   而非   C++   语言世界的概念:取这个名字就是因为你的   C   程序运行时需要这些库中的函数.         2)C   语言是所谓的“小内核”语言,就其语言本身来说很小(不多的关键字,程序流程控制,数据类型等);所以,C   语言内核开发出来之后,Dennis   Ritchie   和   Bri

dennishan的专栏 625

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

如何理解C run-time library (C运行时库/CRT)

注: 以下内容部分引自CSND中相关讨论的帖子,并结合自己的理解整理而成。仅供参考。1)运行时库就是 C run-time library,是 C 而非 C++ 语言世界的概念:取这个名字就是因为你的 C 程序运行时需要这些库中的函数.2)C 语言是所谓的“小内核”语言,就其语言本身来说很小(不多的关键字,程序流程控制,数据类型等);所以,C 语言内核开发出来之后,Dennis Ritch

~。~||| 821

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

如何理解C run-time library(C运行时库)

 )运行时库就是 C run-time library,是 C 而非 C++ 语言世界的概念:取这个名字就是因为你的 C 程序运行时需要这些库中的函数. 2)C 语言是所谓的“小内核”语言,就其语言本身来说很小(不多的关键字,程序流程控制,数据类型等);所以,C 语言内核开发出来之后,Dennis Ritchie 和 Brian Kernighan 就用 C 本身重写了 90% 以上的 UNIX

lifj07的专栏 806

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

如何理解C run-time library(C运行时库)

1 )运行时库就是 C run-time library,是 C 而非 C++ 语言世界的概念:取这个名字就是因为你的 C 程序运行时需要这些库中的函数.  2)C 语言是所谓的“小内核”语言,就其语言本身来说很小(不多的关键字,程序流程控制,数据类型等);所以,C 语言内核开发出来之后,Dennis Ritchie 和 Brian Kernighan 就用 C 本身重写了 90% 以上的

embdbyxc的专栏 385

[转]如何理解C run-time library (C运行时库)

注: 以下内容部分引自CSND中相关讨论的帖子,并结合自己的理解整理而成。仅供参考。 0)在Windows平台下,C Runtime Library 的情况如下: 动态连接库 导出库文件 静态连接库 Release msvcrt.dll msvcrt....

weixin_33769125的博客 118

如何理解C run-time library (C运行时库) 2010-9-16 14:55

1)运行时库就是 C run-time library,是 C 而非 C 语言世界的概念:取这个名字就是因为你的 C 程序运行时需要这些库中的函数. 字串2 2)C 语言是所谓的“小内核”语言,就其语言本身来说很小(不多的要害字,程序流程控制,数据类型等);所以,C 语言内核开发出来之后,Dennis Ritchie 和 Brian Kernighan 就用 C 本身重写了 90% 以上的 UN

laohu6599的专栏 372

如何理解C run-time library

如何理解C run-time library (C运行时库) 注: 以下内容部分引自CSND中相关讨论的帖子,并结合自己的理解整理而成。仅供参考。1)运行时库就是 C run-time library,是 C 而非 C++ 语言世界的概念:取这个名字就是因为你的 C 程序运行时需要这些库中的函数.2)C 语言是所谓的“小内核”语言,就其语言本身来说很小(不多的关键字,程序流程控制,

visame的专栏 1000

C运行时库(C run-time library)概述

本人描述了CRT的基本概念

_Santiago的博客 3163
上一篇: vm+ubuntu+ffmpeg编译
下一篇: rtsp
trunk0813
博客等级 码龄18年 7粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值