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纯净版
系统下载排行榜71011xp
番茄花园 Win7 64位 快速稳定版
2【纯净之家】Windows7 64位 最新纯净版
3【老机专用】Windows7 32位 精简旗舰版
4【纯净之家】Windows7 SP1 64位 全补丁旗舰版
5JUJUMAO Win7 64位 最新纯净版
6【纯净之家】Windows7 32位 最新纯净版
7【纯净之家】Windows7 SP1 64位 办公旗舰版
8【雨林木风】Windows7 64位 装机旗舰版
9【电脑公司】Windows7 64位 免费旗舰版
10【国庆献礼】JUJUMAO Win7 SP1 64位旗舰克隆纯净版
【纯净之家】Windows10 22H2 64位 专业工作站版
2【纯净之家】Windows10 22H2 64位 游戏优化版
3【纯净之家】Windows10 企业版 LTSC 2021
4【纯净之家】Windows10企业版LTSC2021 纯净版
5【深度技术】Windows10 64位 专业精简版
6联想Lenovo Windows10 22H2 64位专业版
7JUJUMAO Win8.1 Up3 X64 极速精简版v2019.11
8【纯净之家】Windows10 22H2 64位 专业精简版
9【雨林木风】Windows10 64位 专业精简版
10【纯净之家】Windows10 22H2 64位 专业办公版
【纯净之家】Windows11 23H2 64位 游戏优化版
2【纯净之家】Windows11 23H2 64位 专业工作站版
3【纯净之家】Windows11 23H2 64位 纯净专业版
4风林火山Windows11下载中文版
5【纯净之家】Windows11 23H2 64位 最新企业版
6【纯净之家】Windows11 23H2 64位 中文家庭版
7JUJUMAO Win11 24H2 64位 专业版镜像
8深度精简 Win11 ESD 全新优化纯净版V2024
9【纯净之家】Windows11 23H2 64位专业精简版
10【纯净之家】Windows11 23H2 64位 纯净家庭版
深度技术 GHOST XP SP3 电脑专用版 V2017.03
2深度技术 GGHOST XP SP3 电脑专用版 V2017.02
3Win7系统下载 PCOS技术Ghost WinXP SP3 2017 夏季装机版
4萝卜家园 GHOST XP SP3 万能装机版 V2017.03
5番茄花园 GHOST XP SP3 极速体验版 V2017.03
6雨林木风 GHOST XP SP3 官方旗舰版 V2017.03
7电脑公司 GHOST XP SP3 经典旗舰版 V2017.03
8雨林木风GHOST XP SP3完美纯净版【V201710】已激活
9萝卜家园 GHOST XP SP3 完美装机版 V2016.10
10雨林木风 GHOST XP SP3 精英装机版 V2017.04
热门教程
装机必备 更多+
重装工具