Linux下的静态库和动态库

Linux下的静态库和动态库,第1张

静态库

可以把它想象成是一些代码的集合,在可执行程序运行前就已经加到了代码中,成为了执行程序的一部分,一般是以.a为后缀的文件名,Windows下后缀为.lib。静态库的命名也分为三部分,1、前缀:lib,2、库的名称:随意,如lisi,3、后缀:.a。

静态库优缺点

上面简单介绍了静态库,那它自然也会有优缺点,这里来介绍下它的优缺点。

优点:1、在最后,函数库是被打包到应用程序中的,实现函数本地化、寻址方便、高效。2、程序在运行的时候,与函数库没有关系,移植性更强。

缺点:1、消耗资源较大,每个进程在使用静态库的时候,都要复制一份才可以,这也就造成了内存的消耗。2、在程序更新、部署、发布的时候,使用静态库相对麻烦,如果一个静态库更新了,那它的应用程序都需要重新编译,再发送给用户,有的时候可能只是一个小的改动,但对于用户来说,会导致整个程序重新下载。

动态库

在程序编译时不会被连接到目标代码中,在后期运行时才会载入,不同的应用程序如果调用相同的库,内存中只有一份共享库的拷贝,也就避免了空间的浪费问题。一般以.so作为文件后缀名,也分为三部分:1、前缀:lib,2、库名称:自定义,3、后缀:.so

动态库优缺点

优点:1、节省内存2、部署、升级相对方便,只需要更换动态库,再重新启动服务即可。

缺点:1、加载速度比静态库慢2、移植性较差,需要把所有用到的动态库进行移植。

您好,在Linux下布置Windows动态库的方法如下:

1. 首先,您需要准备一个Windows动态库,可以是一个dll文件,也可以是一个lib文件,这取决于您的需求。

2. 然后,您需要在Linux下安装一个Windows动态库的解释器,比如Wine,它可以帮助您在Linux下运行Windows程序。

3. 接下来,您需要将Windows动态库复制到Linux系统中,并将其路径添加到Linux系统的环境变量中,以便程序能够正确调用该库。

4. 最后,您需要使用Linux系统自带的编译器,比如GCC,将Windows动态库编译成Linux可以识别的格式,以便程序能够正确调用该库。

以上就是在Linux下布置Windows动态库的方法,希望能够帮助您解决问题。

TARGET = client # 这里修改你的库名

TARGET_LIB = $(TARGET:%=lib%.a)

CROSSCOMPILER =#arm-hisiv200-linux-

CC = $(CROSSCOMPILER)gcc

AR = $(CROSSCOMPILER)ar

CFLAGS = #-DDEBUG

INCS = -I./

LIBS = -lpthread

SOURCES = main.c #这里添加你的c文件

OBJECTS = $(SOURCES:.c=.o)

all: $(TARGET_LIB) #$(TARGET) #修改这里可以更改编译目标

$(TARGET) : $(OBJECTS)

$(CC) -O2 -o $@ $(INCS) $(CFLAGS) $^ $(LIBS)

$(TARGET_LIB) : $(OBJECTS)

$(AR) -rv -o $@ $^

%.o:%.c

$(CC) -O2 -c -o $@ $(INCS) $(CFLAGS) $^

clean:

@rm -vrf $(TARGET) $(TARGET_LIB) $(OBJECTS)

#注意百度把tab自动删除了要补上


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8329715.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-15
下一篇2023-04-15

发表评论

登录后才能评论

评论列表(0条)

    保存