设为首页 加入收藏

TOP

Linux静态库生成指南
2015-04-07 15:30:15 来源: 作者: 【 】 浏览:32
Tags:Linux 静态 生成 指南

Linux上的静态库,其实是目标文件的归档文件。
在Linux上创建静态库的步骤如下:


下面通过实例具体讲解。


第一个源文件 my_print.c


源文件2: my_math.c


使用gcc,为这两个源文件生成目标文件:


我们就得到了 my_print.o 和 my_math.o。


我们使用 ar 将目标文件归档:


我们就得到了libmylib.a,这就是我们需要的静态库。


上述命令中 crv 是 ar的命令选项:


通过 ar t libmylib.a 可以查看 libmylib.a 中包含的目标文件。


可以通过 ar --help 查看更多帮助。


注意:我们要生成的库的文件名必须形如 libxxx.a ,这样我们在链接这个库时,就可以用 -lxxx
反过来讲,当我们告诉编译器 -lxxx时,编译器就会在指定的目录中搜索 libxxx.a 或是 libxxx.so


头文件定义了 libmylib.a 的接口,也就是告诉用户怎么使用 libmylib.a。


生成my_lib.h, 内容如下:


在同样的目录下,建立 test.c:


这个源文件中引用了 libmylib.a 中的 coutadd 函数。


编译test.c:


将会生成a.out,通过 ./a.out 可以运行该程序。说明我们的静态库能正常工作。


上面的命令中 -L. 告诉 gcc 搜索链接库时包含当前路径, -lmylib 告诉 gcc 生成可执行程序时要链接 libmylib.a


上面的步骤很繁琐,还是写个简单的makefile吧,内容如下:


makefile写好后,运行 make build 将会构建 libmylib.a, 运行 make test 将会生成链接 libmylib.a 的程序。


如果你在 Windows 上使用 mingw,和Linux下生成静态库的方法是一样的。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Android media媒体库分析之:调用.. 下一篇GO 语言学习的五个阶段

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: