示例三 创建并使用静态库
第一步:编辑源文件,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
…
xort.c.o
[root@node56 lib]#
[root@node56 lib]# ar -tv libhycu.a
rw-r--r-- 0/0 7220 Jul 29 19:18 2011 base64.c.o
rw-r--r-- 0/0 2752 Jul 29 19:18 2011 binbuf.c.o
rw-r--r-- 0/0 19768 Jul 29 19:18 2011 cache.c.o
…
rw-r--r-- 0/0 4580 Jul 29 19:18 2011 xort.c.o
[root@node56 lib]#
[root@node56 lib]# nm -s libhycu.a | less
Archive index:
Base64Enc in base64.c.o
GetBase64Value in base64.c.o
Base64Dec in base64.c.o
encode64 in base64.c.o
decode64 in base64.c.o
check64 in base64.c.o
test64 in base64.c.o
…
chunk_alloc in chunk.c.o
[root@node56 lib]#
makefile生成库文件
转载举报文章
请选择举报类型
内容侵权
涉嫌营销
内容抄袭
违法信息
其他
补充说明
0/200
上传截图
格式支持JPEG/PNG/JPG,图片不超过1.9M

提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Linux服务器---流量监控bandwidthd
Bandwidthd Bandwidthd是一款免费的流量软件,它可以用图标的方式展现出网络流量行为
Linux bandwidth 流量 html 配置文件 -
Qt: 使用文件选择框QFileDialog
Qt开发,用到一个选择文件的功能,研究一番,用法记录如下:QString path = "/home/zhouyingge1104/Desk
qt 开发语言 qt开发 文件选择 desktop -
详细的Git使用教程
有没有想过把每次修改的代码内容都记录下来,防止修改错了再回去
git 暂存区 版本库 -
几个Makefile通用模板分享!
大家好,我是ZhengN。本次给大家带来三个Makefile模板:...
嵌入式 编译器 java linux c++