首页 > 厂商 > 知识 > 静态库,计算机静态库

静态库,计算机静态库

来源:整理 时间:2023-09-06 18:27:16 编辑:智能门户 手机版

本文目录一览

1,计算机静态库

静态库是指在我们的应用中,有一些公共代码是需要反复使用,就把这些代码编译为"库"文件;在链接步骤中,连接器将从库文件取得所需的代码,复制到生成的可执行文件中的这种库。

计算机静态库

2,什么是iPhone SDK中的静态库

http://en.wikipedia.org/wiki/Static_library
就是把函数封装成一个库,以.a结尾,然后将这个库导入新的工程里,可以直接调用它的方法。

什么是iPhone SDK中的静态库

3,怎么创建静态库工程

看看这个帖子:http://www.devdiv.com/forum.php?mod=viewthread&tid=132999多工程联编设置
感觉不成功主要是因为引入问题。

怎么创建静态库工程

4,请问静态库和动态链接库有什么区别各有什么用

简单来说 静态库 编译完 之后 就一个光光 exe动态库编译完 之后 是要 一个exe 和这个dll同时在 才能运行。好处?dll可以动态加载,也可以被多个程序调用,lib库 存在版本必须一致的问题,例如2008的代码 连接的时候 必须要连接 2008编译出来的lib库,而dll 或许 不需要这么强制对应。

5,什么叫静态库和动态库

静态库是编写的时候加载进源代码进行编译的,如各种头文件。动态库是在程序运行的时候映射进程序的内存空间进行动态加载的,如DLL文件。
程序编译一般需经预处理、编译、汇编和链接几个步骤。在应用中,有一些公共代码是需要反复使用,就把这些代码编译为“库”文件;在链接步骤中,连接器将从库文件取得所需的代码,复制到生成的可执行文件中。这种库称为静态库,其特点是可执行文件中包含了库代码的一份完整拷贝;缺点就是被多次使用就会有多份冗余拷贝。  动态库又称动态链接库英文为DLL,是Dynamic Link Library 的缩写形式,DLL是一个包含可由多个程序同时使用的代码和数据的库,DLL不是可执行文件。动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一个 DLL 中,该 DLL 包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。DLL 还有助于共享数据和资源。多个应用程序可同时访问内存中单个DLL 副本的内容。DLL 是一个包含可由多个程序同时使用的代码和数据的库。Windows下动态库为.dll后缀,在linux在为.so后缀。  静态库和动态库是两种共享程序代码的方式,它们的区别是:静态库在程序的链接阶段被复制到了程序中,和程序运行的时候没有关系;动态库在链接阶段没有被复制到程序中,而是程序在运行时由系统动态加载到内存中供程序调用。使用动态库的优点是系统只需载入一次动态库,不同的程序可以得到内存中相同的动态库的副本,因此节省了很多内存。

6,Linux中如何创建静态库和动态库

静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库。 动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在。 程序1: hello.h #ifndef HELLO_H #define HELLO_H void hello(const char *name); #endif //HELLO_H 程序2: hello.c #include void hello(const char *name) { printf("Hello %s!\n", name); } 程序3: main.c #include "hello.h" int main() { hello("everyone"); return 0; } 无论动态库还是静态库都需要用到.o文件来生成,先编译生成.o文件。 # gcc -c hello.c 1:创建静态库 静态库文件名的命名规范是以lib为前缀,紧接着跟静态库名,扩展名为.a。例如:我们将创建的静态库名为myhello,则静态库文件名就是libmyhello.a。 # ar cr libmyhello.a hello.o 使用静态库:只需要在你的源程序中加入包含你所需要使用到的函数的声明(即包含头文件),然后在gcc生成目标文件时候指明静态库就OK了(除非你包含的头文件在/usr/include,库文件在标准库/usr/lib,/lib下,否则你得显示指明他们的路径) # gcc -o hello main.c -L. -lmyhello # ./hello Hello everyone! 删除静态库文件运行./hello,程序正常运行,说明静态库公用函数已经链接到目标文件。 2: 利用.o文件创建动态库 动态库文件扩展名为.so。 # gcc -shared -fPCI -o libmyhello.so hello.o 动态库的使用与静态库使用方式一样 # gcc -o hello main.c -L. -lmyhello # ./hello ./hello: error while loading shared libraries: libmyhello.so: cannot open shared object file: No such file or directory 哦!出错了。快看看错误提示,原来是找不到动态库文件libmyhello.so。程序在运行时,会在/usr/lib和/lib等目录中查找需要的动态库文件。若找到,则载入动态库,否则将提示类似上述错误而终止程序运行。
文章TAG:静态库计算机静态库

最近更新

  • 主减速器的作用,主减速器起什么作用有哪几种形式主减速器的作用,主减速器起什么作用有哪几种形式

    主减速器起什么作用有哪几种形式2,主减速器的功用是什么3,主减速器的作用有那些4,主减速器的作用是什么5,主减速器的作用是变速机可以减速也可以增速传动6,汽车上为什么要使用主减速器1,主减.....

    知识 日期:2023-09-06

  • 防水机器人材料,有没有防水机器人防水机器人材料,有没有防水机器人

    机器人防护服防水有什么作用?水下机器人短时间内是不可能实现的,水下机器人的操作难度很大。首先要有绝对防水材料production机器人,不能有漏,搜索机器人防水如何搜索机器人具有一定性能防.....

    知识 日期:2023-09-06

  • 对接焊缝,什么叫对界焊缝对接焊缝,什么叫对界焊缝

    什么叫对界焊缝2,什么是单面施焊对接焊缝3,全断面对接焊缝是什么意思4,采用不同焊接顺序的对接焊缝方法有哪几种5,对接焊缝的区分6,什么是对缝焊接1,什么叫对界焊缝两块焊板采用对接方法焊出.....

    知识 日期:2023-09-06

  • 定义字符串,变量声明中怎样定义字符串定义字符串,变量声明中怎样定义字符串

    变量声明中怎样定义字符串2,定义一个字符串输入一串字符使其成为一个字符串当达到数组3,如何定义定义的字符串1,变量声明中怎样定义字符串这是C++声明方式#includestringstr1;然后在函数.....

    知识 日期:2023-09-06

  • 沙漠种树机器人,去沙漠种树国家给钱吗沙漠种树机器人,去沙漠种树国家给钱吗

    沙漠机器人地下管线旁。所以这个机器人是不需要收费的,”“这是机器人?这个机器人看起来像人,它会走路、说话和吃东西,机器人二年级作文1我家有一个机器人扫地机。他小巧玲珑,橘黄色的身体,.....

    知识 日期:2023-09-06

  • cr2016,纽扣电池cr2016多少钱纽扣电池cr2016怎么样cr2016,纽扣电池cr2016多少钱纽扣电池cr2016怎么样

    纽扣电池cr2016多少钱纽扣电池cr2016怎么样2,请教一下佳能A310的那个CR2016锂电池有什么用如果没电了是3,本田CRV2016款20L两驱都市版怎么样4,本田CRV2016款20L两驱经典版怎么样5,天美时手.....

    知识 日期:2023-09-06

  • pcm设备,什么是PCM复用设备它的主要用处它和SDH设备的区别  问pcm设备,什么是PCM复用设备它的主要用处它和SDH设备的区别 问

    什么是PCM复用设备它的主要用处它和SDH设备的区别问2,PCM设备是什么3,pcm是什么设备是否属于将语音信号转成光信号的设备4,PCM设备的介绍5,PCM设备指的是什么设备6,PCM设备和PDH设备有什么.....

    知识 日期:2023-09-06

  • 小米4手机怎么连接电脑数据传输,小米手机USB连接电脑没反应小米4手机怎么连接电脑数据传输,小米手机USB连接电脑没反应

    小米How连接电脑小米手机How连接-。小米4Why连接电脑?小米4Why连接电脑?小米4Why连接电脑?小米4Why连接电脑?小米4Why连接电脑?电脑不联网怎么互相传输文件小米4手机通过数据线-3电脑?小米手.....

    知识 日期:2023-09-06