当前位置:首页 » 操作系统 » linux静态库查看

linux静态库查看

发布时间: 2023-01-09 04:30:08

linux 怎么指定静态链接静态库

创建静态库: ar -rcs test.a *.o 查看静态库: ar -tv test.a 解压静态库: ar -x test.a 查看程序依赖的动态库: readelf -a xxx|grep library 如:可以看到,下面的交叉程序hello执行依赖于如下两个动态库。 rebi@ubuntu:~/test$ arm-none-li...

Ⅱ 如何使用静态库 linux

创建并使用静态库
第一步:编辑源文件,test.h test.c main.c。其中main.c文件中包含main函数,作为程序入口;test.c中包含main函数中需要用到的函数。
vi test.h test.c main.c
第二步:将test.c编译成目标文件。
gcc -c test.c
如果test.c无误,就会得到test.o这个目标文件。
第三步:由.o文件创建静态库。
ar rcs libtest.a test.o
第四步:在程序中使用静态库。
gcc -o main main.c -L. -ltest
因为是静态编译,生成的执行文件可以独立于.a文件运行。
第五步:执行。
./main

示例四 创建并使用动态库
第一步:编辑源文件,test.h test.c main.c。其中main.c文件中包含main函数,作为程序入口;test.c中包含main函数中需要用到的函数。
vi test.h test.c main.c
第二步:将test.c编译成目标文件。
gcc -c test.c
前面两步与创建静态库一致。
第三步:由.o文件创建动态库文件。
gcc -shared -fPIC -o libtest.so test.o
第四步:在程序中使用动态库。
gcc -o main main.c -L. -ltest
当静态库和动态库同名时,gcc命令将优先使用动态库。
第五步:执行。
LD_LIBRARY_PATH=. ./main

示例五 查看静态库中的文件
[root@node56 lib]# ar -t libhycu.a
base64.c.o
binbuf.c.o
cache.c.o
chunk.c.o
codec_a.c.o

Ⅲ 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会优先选择动态库作者
梨树阳光

Ⅳ linux如何查看静态库是不是arm提醒

查看系统内核版本,使用 uname 命令。 以致远电子的M3352核心板为例,输入以下命令即可: [root@M3352 ~]# uname -a Linux M3352 3.2.0 #134 Thu Aug 8 15:47:17 CST 2013 armv7l GNU/Linux

Ⅳ linux环境下,静态库的依赖关系怎么查

创建静态库: ar -rcs test.a *.o 查看静态库: ar -tv test.a 解压静态库: ar -x test.a 查看程序依赖态库: readelf -a xxx|grep library :看面交叉程序hello执行依赖于两态库 rebi@ubuntu:~/test$ arm-none-linux-gnueabi-readelf -a hello|grep "library" 0x0000000依 (NEEDED) Shared library: [libgcc_s.so.依] 0x0000000依 (NEEDED) Shared library: [libc.so.陆] rebi@ubuntu:~/test$ 或者:readelf -l hello 即 nm xxx 查看符号 其T表示代码段U表示其定义所需要确保必须某.o或库定

Ⅵ 如何查看静态库内容 Unix/Linux

以下从最好情况->最坏情况:
1. 最好知道静态库的原文件(.c),要是知道声明文件(.h)也比较好。
2. ar -t YourFile 看其结构,找其中的原文件。
3. 可以将库文件下到本地用UE打开,然后你就找吧。
另外,看动态库用 nm -D lib*.so

热点内容
linuxshell密码 发布:2025-05-14 17:21:11 浏览:199
安卓手机听筒在哪里关闭 发布:2025-05-14 17:16:20 浏览:455
我的世界炸毁50万服务器 发布:2025-05-14 17:16:07 浏览:123
存储站源 发布:2025-05-14 17:14:20 浏览:864
win2008的ftp设置 发布:2025-05-14 17:03:31 浏览:664
莱克发的工资卡密码是多少 发布:2025-05-14 16:57:10 浏览:179
方舟怎么用自己的存档进入别人的服务器 发布:2025-05-14 16:46:25 浏览:878
微博视频高清上传设置 发布:2025-05-14 16:38:41 浏览:549
数据库图书管理设计 发布:2025-05-14 16:33:52 浏览:379
php开发的网页 发布:2025-05-14 16:22:03 浏览:478