Linux下静态库生成和使用
系统大全为您提供
一.静态库概念1.库是预编译的目标文件(object files)的集合,它们可以被链接进程序。静态库以后缀为”.a”的特殊的存档(archive file)存储。2.标准系统库可在目录/usrb与b中找到。比如,在类Unix系统中C语言的数序库一般存储为文件/usrbbm.a。该库中函数的原型声明在头文件/usr/include/math.h中。3.C标准库本身存储为/usrbbc.a,它包含ANS1/ISO标准指定的函数,比如printf。对每一个C程序来说,libc.a都默认被链接。4.一个事例:在tiger.c程序中调用一个数学库libm.a中sin函数。
如果直接使用gcc tiger.c则会出现错误:undefined reference to ‘sin’;1>函数sin(),未在本程序中定义也不在默认库’libc.a’中,除非被指定,编译器也不会链接’libm.a’。2>为使编译器能将sin()链接进主程序‘test.c’,需要提供数学库’libm.a’.。3>使用方法:gcc tiger.c /usrbbm.a -o tiger则可以编译通过。为了避免在命令行中指定长的路径,编译器为链接函数库提供了快捷的选项“-l”。因此可以使用下面的方法:gcc tiger.c -lm –o tiger注:选项-lNAME使用连接器尝试链接系统库目录中的函数库文件libNAME.a。 二.生成和使用静态库1.静态库是obj文件的一个集合,通常静态库以”.a”为后缀。静态库由程序ar生成。2.静态库的优点是可以在不用重新编译程序库代码的情况下,进行程序的重新链接,这种方法节省了编译过程的时间(在编译大型程序的时候,需要花费很长的时间)。静态库的另一个优点是开发者可以提供库文件给使用的人员,不用开放源代码,这是库函数提供者经常采用的手段。3.通过一个实例来了解如何自己生成静态库和使用静态库首先生成静态库1>在test文件夹下有三个文件:main.c ,tiger.c,tiger.h;a. main.c文件中的内容:
#include<stdio.h>#include”tiger.h” //注意include该文件,并不是仅链入.a文件即可int main(void){ printf(“sum=%d ”,add(3,5)); return 0; }
b.tiger.h文件中的内容:
#ifndef __TIGER__#define __TIGER__int add(int a,int b);#endifc.tiger.c文件中的内容
int add(int a,int b){ return a+b;}2>创建静态库的最基本步骤是生成目标文件tiger.ogcc -o tiger.o -c tiger.c3>然后生成静态库libadd.a:ar -rcs libadd.a tiger.o 其次使用静态库1>使用gcc命令带上库文件就OK了 gcc -o main main.c libadd.a2> 也可以使用命令”-l库名”进行,库名是不包含库函数库和扩展名的字符串。 gcc -o main main.c -ladd上面的命令执行完后,系统返回:Cannot find –ladd说明:上面的命令将在系统默认的路径西安查找add函数库,并把他链接到要生成的目标程序上。系统提示没有找到库文件add,这是由于add库函数没有在系统默认的查找路径下,我们需要认为指定库函数的路径,例如:库文件和当前编译文件在同一目录下: gcc -o main main.c -L ./ -ladd系统就能正常生成可执行文件。说明: 在使用-l选项时,-o选项的目的名要在-l链接的库名之前,否则gcc会认为-l是生成的目标而出错。
以上就是系统大全给大家介绍的如何使的方法都有一定的了解了吧,好了,如果大家还想了解更多的资讯,那就赶紧点击系统大全官网吧。
本文来自系统大全http://www.win7cn.com/如需转载请注明!推荐:win7纯净版
相关文章
- Win11 Dev 26300.7674 发布!正式开启 26300 篇章
- NVIDIA 发布 591.86 显卡驱动!附下载地址
- Win11 更新致调制解调器失效,微软回应非 Bug 是安全调整
- 微软发布 Win11 24H2/25H2 紧急补丁 KB5078127
- 微软发布 Win11/10 紧急带外更新,修复关机异常和远程登录问题
- AMD 最新显卡驱动 26.1.1 版本发布!附下载地址
- 英特尔发布 32.0.101.8425 显卡驱动!附文件下载
- 微软 PowerToys 0.97 发布:命令面板可自定义
- 微信 Windows 4.1.7 内测更新:新增群接龙 + 语音转文字
- 微软 Win11 预览版桌面水印不更新问题将修复
系统下载排行榜71011xp
【纯净之家】Windows7 64位 全新纯净版
2番茄花园 Win7 64位 快速稳定版
3【纯净之家】Windows7 32位 全新纯净版
4【纯净之家】Win7 64位 Office2007 办公旗舰版
5【雨林木风】Windows7 64位 装机旗舰版
6JUJUMAO Win7 64位旗舰纯净版
7【纯净之家】Windows7 SP1 32位 全补丁旗舰版
8【电脑公司】Windows7 64位 免费旗舰版
9【深度技术】Windows7 64位 官方旗舰版
10【游戏专用】Windows7 64位 装机旗舰版
【纯净之家】Windows10 22H2 64位 游戏优化版
2【纯净之家】Windows10 22H2 64位 专业工作站版
3【纯净之家】Windows10企业版LTSC 2021 纯净版
4【深度技术】Windows10 64位 专业精简版
5【纯净之家】Windows10 22H2 64位 企业版
6【雨林木风】Windows10 64位 专业精简版
7JUJUMAO Win10 X64 极速精简版
8【深度技术】 Win10 64位国庆特别版
9【纯净之家】Windows10 32位 官方正式版
10【雨林木风】Windows10 64位 官方专业版
【纯净之家】Windows11 23H2 64位 游戏优化版
2【纯净之家】Windows11 23H2 64位 专业工作站版
3【纯净之家】Windows11 23H2 64位 纯净专业版
4风林火山Windows11下载中文版(24H2)
5【纯净之家】Windows11 23H2 64位 企业版
6【纯净之家】Windows11 23H2 64位 中文家庭版
7JUJUMAO Win11 24H2 64位 专业版镜像
8【纯净之家】Windows11 23H2 64位专业精简版
9【纯净之家】Windows11 23H2 64位 纯净家庭版
10JUJUMAO Win11 24H2 64位 精简版镜像
深度技术 GHOST XP SP3 电脑专用版 V2017.03
2深度技术 GGHOST XP SP3 电脑专用版 V2017.02
3萝卜家园 GHOST XP SP3 万能装机版 V2017.03
4番茄花园 GHOST XP SP3 极速体验版 V2017.03
5Win7系统下载 PCOS技术Ghost WinXP SP3 2017 夏季装机版
6雨林木风 GHOST XP SP3 官方旗舰版 V2017.03
7电脑公司 GHOST XP SP3 经典旗舰版 V2017.03
8萝卜家园 GHOST XP SP3 完美装机版 V2016.10
9雨林木风GHOST XP SP3完美纯净版【V201710】已激活
10雨林木风 GHOST XP SP3 精英装机版 V2017.04
热门教程
装机必备 更多+
重装工具