《网站开发与应用》试题,学校网站建设项目可行性分析,网站集约化建设启示和建议,鄂尔多斯网站建设公司什么是库#xff1f;
平时在写代码的时候会经常添加一些头文件#xff0c;添加这些头文件其实是让编译器从一个目录下去寻找这个文件#xff0c;这个目录就是我们常说的库。在Linux中库一般存放在user/lib目录。库就是将一些常用的函数的目标文件打包在一起#xff0c;提供…什么是库
平时在写代码的时候会经常添加一些头文件添加这些头文件其实是让编译器从一个目录下去寻找这个文件这个目录就是我们常说的库。在Linux中库一般存放在user/lib目录。库就是将一些常用的函数的目标文件打包在一起提供相应的函数接口以便于使用。
什么是静态库
静态库就是在编译连接的时候将库中的代码连接直接复制到可执行文件中这样程序在运行的时候就不用去连接动态库了。静态库的这个连接过程就是静态链接。
什么是动态库
动态库就是程序在运行的时候才去连接动态库的代码可以多个程序共享动态库中的代码这个动态库的连接过程就是动态链接也就是在执行文件开始之前将外部函数的机器码有系统从磁盘上对应的动态库中向内存复制一份。
静态库和动态库的区别
1、动态库是在运行时有系统调用库函数实现链接代码较小巧。而静态库是在链接是复制到代码中代码量比较庞大冗余度高。 2、由于静态库是通过复制的方式所以他在编译连接之后就不再需要静态库代码的可以执行强但是动态库由于是利用本地的库函数如果将代码移植到其他电脑会出现运行bug等可移植性差。 3、动态库必须放在指定的目录下完成连接但是静态库只需要给出链接文件的路径就可以。 4、他们的相同点就是在库文件中不能出现main函数库都是用来提供函数接口的不暴露源代码所有的库的目的都是为了增加代码的复用可共享性减小冗余。 5、在windows中静态库是后缀是.lib动态库是.dll在Linux中静态库是.a,动态库是so。 6、使用ar创建静态库