导航:首页 > 文件类型 > lib静态库文件在linux中不能用

lib静态库文件在linux中不能用

发布时间:2024-01-31 17:38:33

linux动态库和静态库的区别

我们通常把复一些公用函数制作制成函数库,供其它程序使用。
函数库分为静态库和动态库两种。
静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库。
动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在。
具体的程序参见:
http://blog.chinaunix.net/u1/34474/showart_362189.html

❷ Linux下的静态库和动态库

linux下的静态库和动态库1.制作自己的动态库和静态库linux下动态库以.so结尾,静态库以.a结尾,它们都以lib开头,比如一个库名为net,那么它的全名应该是libnet.so或者libnet.a。我们有两个文件,hello.c和test.c,下面是两个文件的内容//hello.c
www.shiwu.com
#include
<stdio.h>void
my_lib_func(){printf(Library
routine
called/r/n);}//test.c#include
<stdio.h>
www.shiwu.com
int
main(){my_lib_func();return
1;}test.c调用了hello.c的方法,我们把hello.c封装成库文件。无论是静态库还是动态库,都是由.o文件组成,我们先把gcc
-c
hello.c生成.o文件制作静态库ar
crv
libmyhello.a
hello.o,ar是生成静态库的命令,libmyhello.a是我的静态库名。下一步就是在我的程序中使用静态库
可以看到已经有了Library
routine
called的结果,说明调用成功了。下面我们删除libmyhello.a,看看程序是否还是运行正常
我们发现程序依然运行正常,说明静态库已经连接进入我们的程序中制作动态库
www.shiwu.com
我们看见动态库libmyhello.so已经生成,下面继续使用
找不到库文件,这个时候我们把so文件拷贝到/usr/lib下面
运行成功2.动态库和静态库同时存在的调用规则我们可以发现,不论是动态库还是静态库,程序编译连接的时候都是加的参数-l,那么当他们同时存在的时候,程序会选择动态库还是静态库呢。我们做个尝试。
我们同时存在libmyhello.a和libmyhello.so,我们发现运行的时候,出现找不到动态库的错误,由此,我们可以得出结论,同时存在动态库和静态库的时候,gcc会优先选择动态库作者
梨树阳光

阅读全文

与lib静态库文件在linux中不能用相关的资料

热点内容
宁波海曙四轴编程培训有哪些 浏览:109
看逗逗App怎么样 浏览:518
联想小新14板绘用什么app 浏览:830
open头文件linux 浏览:515
16位程序使用的其他文件太多 浏览:705
win10打开照片说文件错误怎么办啊 浏览:585
c游戏编程要注意什么 浏览:937
c3js参数 浏览:408
手机街机游戏模拟器app有哪些 浏览:582
手机banner轮播代码 浏览:943
jsa标签新窗口打开页面 浏览:234
怎么把word文档不分页 浏览:136
车工数控编程用什么软件 浏览:9
如何重置xp网络组件 浏览:161
女生学大数据要多少时间 浏览:697
在word文档里添加word文档 浏览:657
iphone5s如何导入文件 浏览:634
苹果扩容u盘哪个品牌好 浏览:295
电脑计算机保存文件 浏览:839
nodejs推荐书 浏览:405

友情链接