C++和C运行库

1.
linux C 运行库 libc.so/libc.a
C++ 运行库 libstdc++.so/libstdc++.a
windows C运行库libcmt.lib/msvcr90.dll 90指的是版本,新版本可能是100或者110后缀
C++运行库libcpmt.lib/msvcp90.dll
C++的运行库依赖C的运行库
[root@localhost home]# ldd /usr/lib/gcc/x86_64-redhat-linux/4.4.4/libstdc++.so
linux-vdso.so.1 => (0x00007fff671ff000)
libm.so.6 => /lib64/libm.so.6 (0x0000003423200000)
libc.so.6 => /lib64/libc.so.6 (0x0000003422a00000)
/lib64/ld-linux-x86-64.so.2 (0x0000003422200000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x000000342f200000)

2.
这里用到了两个常用的依赖库查看工具
linux: ldd
windows: dependency walker
平时在VS2010的上开发的应用程序,可能需要vs2010运行库的支持,这时候就需要安装这个库,如果不方便安装,其实我们直接把动态库msvcr100.dll msvcp100.dll直接加进来也是可以的,然后使用dependency检查应用程序所依赖的库是否完全,若遗失则再补全。相当于一个绿化的过程了。

另外补充一点:
在C:\Windows\System32下的msvcrXX.dll msvcpXX.dll 是64位的库
C:\Windows\SysWOW64 下是32位的库,这一点很容易误导人,不过这些可以通过dependency来检查。
msvcrXXd.dll msvcpXXd.dll 后面名字以d结尾的动态库是debug版本的程序所依赖的库

3.
C++运行库依赖C运行库,除此之外库中就是C++的一些特性的支持功能了,
new/delete, stl, 异常处理,流, 命名空间等等,C++区别于C的部分都在这里。但C++并不是简单的包含C,很多功能还是依赖于C库,比如流和文件操作。

4. 实际上 libc和msvct是C标准的超集合,它们还包含了其他的操作,比如线程。
对于其他的知识,可以参考《程序员的自我修养》 13章 运行库实现 这部分的内容,这篇文章也是受此启发,加了一点自己的经验总结而言。

### 回答1: Visual C 2005、2008和2010是Microsoft开发的编程语言软件,它们分别对应着Visual Studio 2005、2008和2010版本的软件开发工具。这三个版本的Visual C++都包含了一系列运行库文件。 其中,Visual C++ 2005运行库包括了一个MFC(Microsoft Foundation Classes)应用程序所需的所有DLL(动态链接库)文件和一些其他依赖项。这些运行库文件包括MFC、ATL(Active Template Library)、CRT(C运行库)、OpenMP(开放多处理)、STL(标准模板库)等等。它们的作用分别是提供一个面向对象的程序框架、创建快速的C++代码、提供标准的C++函数库支持、并行处理程序以及提供映射到STL的标准C++模板的实现。此外,Visual C++ 2005还提供了可以作为Windows操作系统API的一部分的MFC类。 Visual C++ 2008运行库是Visual C++ 2005运行库的更新版本,它包含了更多的MFC类、增强的ATL和CRT库,并支持新的C++11标准。这使得Visual C++ 2008应用程序执行速度更快、更稳定,并且更易于创建。 最后,Visual C++ 2010运行库包含了跨平台的C++应用程序所需的Windows运行库文件。这个版本的运行库在Windows 7、Windows 8和Windows Server 2008 R2等操作系统上运行更加稳定,用于创建可移植的C++应用程序也更加便捷。 总之,Visual C++ 2005、2008和2010运行库文件为Windows操作系统和跨平台应用程序提供了必要的支持,帮助开发人员快速构建可靠、稳定、高效的应用程序。 ### 回答2: Visual C是一个Windows操作系统下的集成开发环境(IDE),主要用于开发Windows平台下的软件项目。在编写使用Visual C编写的实际应用程序时,必须使用Microsoft Visual C++运行库文件来使得程序在不同的电脑上能够正常运行。 Visual C++ 2005、2008和2010都包含各自版本的运行库文件。虽然这些版本之间的运行库文件有一些不同,但其目的是相同的,即提供某些功能,如内存管理、多线程、网络连接、I/O操作等,以便应用程序正常运行。然而,这些运行库文件在不同的操作系统版本上可能会有不同的要求。 以Visual C++ 2010为例,它提供了三种运行库文件的选择: 1.多线程调试DLL运行库(/MDd) 2.多线程DLL运行库(/MD) 3.多线程静态库(/MT) 这三种选项的区别在于每个选项对应的运行库文件是“动态链接库”(DLL)或“静态链接库”(LIB),以及每个选项与在应用程序中包含运行库文件的方式有关。运行库文件是为了提高代码的复用性而产生的,而库文件的链接方式可以影响应用程序的性能、安全和可靠性。 总之,Visual C++中的运行库文件是不可或缺的,它们为开发者提供了许多便利,并可以使得开发的应用程序在各种平台和操作系统上都能正常运行。真的需要开发者注意的是,在不同的版本和选项中,运行库文件可能是不同的,所以必须要匹配运行库和应用程序的开发环境和目标操作系统。 ### 回答3: Visual C++ 2005、2008和2010是微软公司推出的一系列编程工具,其中包括了一些常用的运行库文件,以便开发者在编写软件时能够使用这些库文件简化程序的开发和部署。 这些运行库文件是针对不同版本的Visual C++开发工具进行的开发,具有相应版本的依赖性,因此在安装和使用这些库文件时需要选择对应版本,否则可能会导致程序无法正常运行或者出现其他问题。 Visual C++ 2005运行库文件包括Microsoft Visual C++ 2005 Redistributable Package (x86)和Microsoft Visual C++ 2005 Redistributable Package (x64),它们对应32位和64位操作系统。这些库文件提供了在使用Visual C++ 2005开发的应用程序运行所需的一些公共组件和标准运行时库。 Visual C++ 2008运行库文件包括Microsoft Visual C++ 2008 Redistributable Package (x86)和Microsoft Visual C++ 2008 Redistributable Package (x64),同样对应32位和64位操作系统。这些库文件为使用Visual C++ 2008开发的应用程序提供了一些常见组件和运行时库。 Visual C++ 2010运行库文件包括Microsoft Visual C++ 2010 Redistributable Package (x86)和Microsoft Visual C++ 2010 Redistributable Package (x64),也含有32位和64位版本。它们提供了在使用Visual C++ 2010开发的应用程序所需要的一些公共组件和运行时库。 总的来说,Visual C++ 2005、2008和2010运行库文件是为开发者提供方便的工具,可以让他们轻松地编写和部署应用程序。同时,这些库文件也为普通的计算机用户提供了便利,让他们在运行软件时无需考虑太多关于运行时库的问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值