导航:首页 > 文件类型 > 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中不能用相关的资料

热点内容
微信无法加载视频浏览器可以加载 浏览:419
linux配置环境 浏览:868
苹果手机如何一页只留几个app 浏览:987
投标文件约定项包括哪些 浏览:920
如何学会人工智能编程 浏览:889
手机qq传的文件在哪 浏览:370
win10关闭数字证书 浏览:693
电脑字体放在哪个文件夹 浏览:27
开两个相同版本cad 浏览:785
苹果的文件用什么打开方式 浏览:582
电脑文件的分类 浏览:598
2010word清除格式 浏览:221
怎么把文件名插入excel 浏览:460
我的电脑文件排列 浏览:827
海岛奇兵61级升级经验 浏览:182
数据中心电表最大多少 浏览:622
电脑微信收的文件 浏览:522
jsp页面前端科学记数 浏览:647
javaint占内容长度 浏览:35
编程和下棋哪个更能锻炼思维能力 浏览:833

友情链接