2016 - 2024

感恩一路有你

静态照片做成动态视频软件 linux动态库和静态库的区别?

浏览量:1695 时间:2021-03-10 20:13:54 作者:admin

linux动态库和静态库的区别?

通常编译动态链接库和静态链接库来集成一系列接口(函数)

程序源代码编译后,它是由编译器编译并通过链接器链接到这些库中的

动态链接库和静态链接库的区别是链接器链接时静态链接库会直接编译到程序中

但是动态链接库不会被编译,这些链接库称为依赖关系(动态库和静态库)

程序的运行需要这些依赖关系。程序静态链接后,程序本身已包含此依赖项

但动态链接的程序本身不包含此依赖项。这些依赖项需要执行器将它们安装到操作系统中(动态库和运行时库)

这些库将在程序运行时动态加载

Linux动态库的一般后缀为。所以

静态库的一般后缀是。A

因为静态链接会直接将库编译到程序中,静态编译的程序比动态链接的程序大

这是因为静态链接会将链接库编译到程序中,所以占用的空间会更大

因此,如果有静态链接库,静态库不易维护和更新实现中的bug,整个程序需要更新,因为静态库被编译到程序中

而动态库没有这种情况,因为动态库是在程序运行时动态加载的,所以我们只需要更新动态库,而不需要更新所有依赖该库的程序(软件)

]另一方面,许多程序开发都会使用相同的方法链接库,也就是说,许多程序(软件)将具有相同的依赖关系

如果所有这些依赖关系都是静态编译的,它会造成存储资源的过度消耗和资源的浪费

通过使用动态库,这些程序(软件)可以共享一个链接库,而每个程序都没有链接库,这大大减少了存储资源的消耗空间

我们可以得出第一个结论:两者都是静态链接库。当有同名函数时,链接会有多次定义符号的错误!让我们看看这两个动态库。同一个LIBA libb生成动态链接库,不修改主测试程序!或者:这种编译方法称为动态库的隐式调用。如果你删除一个利巴索,运行a.out时,将出现找不到动态库的错误。这种情况也可以称为加载时间链接!静态库属于编译时链接!第二个结论是:如果它们都是动态库并且被隐式调用,则输出结果与动态库的顺序有关。继续看动态加载动态库。修改主测试程序还可以得出结论,如果动态链接库没有add library link选项,则函数调用是正确的add library路径,这将基于库的路径顺序!左侧将覆盖右侧。当只有一个链接被链接时,它也会生效。例如图片已经非法,请询问,谢谢

静态库是通过加载编译的源代码,如各种头文件。

动态库被映射到程序的内存空间,以便在程序运行时进行动态加载,例如DLL文件。

静态照片做成动态视频软件 动态ip和静态ip哪个好 简述静态库和动态库的区别

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。