01. 静态库

1.静态库

优点:1.链接器抽取需要的代码,不需要的代码不抽取,即使链接时加入了许多lib,只要没用到里面的函数,生成的文件中都不包含lib中的代码。如果不用lib,而是直接link *.obj,则会有多余代码(手工测试时exe大小一样,vs2019中重新生成后大小不同)。

    2.一个可执行程序包含了所有代码,部署方便。

 

缺点:1.维护性问题,修改bug要改源代码,所有用到静态库的要重新编译链接。

    2.每个程序中都有静态库中的代码,重复率高,硬盘空间占用多。

 

制作:控制台使用lib可制作静态库,如下所示,生成文件mod.lib

01. 静态库

 

 

 

再链接,可生成exe文件

01. 静态库

 

 

 

导出时,要用宏兼容C和C++:

 

#ifdef __cplusplus
extern "C" {
#endif // __cplusplus
    void fnStaticLib1();
    void fnStaticLib2();
#ifdef __cplusplus
}
#endif // __cplusplus 

 

也可以导出类,声明和实现要分开写。

 

用法:

#include "StaticLib1.h"
#pragma comment(lib,"StaticLib1.lib")//.lib后缀可以不加

  或者在vs的连接选项里手工添加

  01. 静态库

 

 

 

 

 

也可以导出类,声明和实现要分开写。

上一篇:.Net Core下DllImport使用方法及扩展


下一篇:wpf 删除系统自带右键菜单