跳至主要內容
静态库开发

静态库开发

静态库与动态库的区别

静态库:在链接时,静态库的对象文件直接加入到目标文件中,生成可执行文件。运行时不需要加载静态库。

动态库:在链接时,只有动态库的引用加入到目标文件中,生成可执行文件。运行时需要加载动态库,然后调用动态库中的函数。

静态库文件扩展名为 .a ,动态库文件扩展名为 .so (Linux)或 .dll (Windows)。

静态库在编译和链接时 resolved,动态库在运行时 resolved。

静态库会增加程序的体积,而动态库可以被多个程序共享,减小体积。


ekskei大约 1 分钟C/C++
动态库开发

动态库开发

动态库是一种可以在程序运行时被动态加载的共享库,它包含了一组函数和数据,可以被多个程序共享使用,在C/C++代码重用和模块化开发中有着广泛的应用。动态库通常采用共享对象文件(.so)或者动态链接库文件(.dll)的格式存储在磁盘上。本文将介绍动态库的开发方法以及注意事项,帮助了解如何编写高质量的动态库。

导出函数

编写要导出的函数时,需要使用特殊的关键字和修饰符来标识它们是动态库的导出函数。

例如,在Linux系统下,可以使用__attribute__((visibility("default")))修饰符来标识:


ekskei大约 9 分钟C/C++