C动态运行时库,静态运行时库编译选项的使用

对于在使用Visual C++或Visual Studio编写C/C++程序时,有关于运行库的编译选项理解的不是很清楚。在网上查了下资料,总结一下:

动态链接库在生成的EXE文件比较小,但运行的时候需要.DLL文件。

静态链接生库成的EXE文件比较大,当运行的时候不需要.DLL文件。

 

1、运行时库:VC或VS自带的运行库。(具体的情况有空查资料不上)

 

2、关于VC/VS运行时库的设置:

Visual C++:在“工程设置(Alt+F7) 》 C/C++ 》工程选项”中修改工程的编译参数

Visual Studio:在“项目 》 属性 》 配置属性 》C/C++ 》 代码生成 》运行库”中修改工程的编译参数。(Visual Studio2010中已经取消单线程也就是/ML和/MLd选项)

 

3、具体的参数:

Release版:(用于发布)

静态 单线程 库(/ML):使编译器链接"LIBC.lib"静态库。

静态 多线程 库(/MT):定义_MT,并使编译器链接"LIBCMT.lib"静态库。

动态 多线程 库(/MD):定义_MT_DLL,使编译器链接"MSVCR80.DLL"动态库和 "MSVCRT.lib"导入库。

Debug版:(用于调试)

静态 单线程 库(/MLd):定义_DEBUG,并使编译器链接"LIBCD.lib"静态库。

静态 多线程 库(/MTd):定义_DEBUG_MT,并使编译器链接"LIBCMTD.lib"静态库。

动态 多线程 库(/MDd):定义_DEBUG_MT,和 _DLL,使编译器链接"MSVCR80.DLL"动态库和"MSVCRTD.lib"导入库。

 

调用其他(第三方)运行库或自己生成的运行库:

1、第三方提供的运行库如果提供的是动态的就只能动态调用,提供的是静态的就只能够静态调用。

2、动态库一般包括

1.动态库(DLL)文件:放在与生成的EXE文件同目录中,或系统DLL文件查找路径目录(c:/windows或c:/windows/system32)中。

2.头(H)文件         :放在“包含目录”中,并用预编译命令 “#include  "头文件.H"”包含进来。

3.导入库(lib)文件  :放在“库目录”中有的动态库会包括导出(exp)文件而不包含导入库(lib)文件,可通过LIB /DEF:*.def /out:*.lib /MACHINE:IX86 创建导入库文件,导出文件和动态库文件应该在同一目录。

3、静态库一般包含:1.静态库(lib)文件,2.头(H)文件。

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值