Linux复习之静态库的建立

    技术2022-07-10  82

    库是在链接阶段和相应的.o文件生成可执行文件,根据链接方式的不同,可以分为静态库与动态库。 当使用静态库时,连接器会找出程序所需的函数,将它们复制到执行文件中,因为是完整复制,所以一旦链接成功,可执行文件在静态库不存在的情况下依然可以执行。 动态库与静态库不同,动态库会在程序内留下一个 标记,当程序执行时,指明必须载入的库文件,所以当执行文件时才动态加载库文件,使用动态库必然会节约空间。 在linux下进行链接首先会链接动态库,也就是如果不特别指定,会默认链接动态库。

    静态库的建立

    1.先建立并编辑bank.h与sort.c文件,bank.h内容如下: 程序sort.c提供了函数sortaz,功能是对程序进行排序: 2.将sort.c文件生产可执行的sort.o文件 指令:gcc -c sort.c 3.创建静态库并将目标文件加入库中 指令:ar -r 目标库文件名称 目标文件名称 ar -r libmath.a sort.o 其中,ar是创建静态库的命令,选项-r是将目标文件加入到静态库中,目标库文件名有个不成文的规定,一般用lib开头,以.a结尾,目标文件列表中的目标文件之间用空格隔开。 例如:ar -r libstring.a filel.o file2.o file3.o ar指令的选项主要由一下几种: [r]:将目标文件加入到静态库 [t]:显示今天库中的文件 [a]:将目标文件追加到静态库文件现有文件之后 [b]:将目标文件追加到静态库文件现有文件之前 [d]:从指定的今天库中删除指定文件 [x]:从指定的静态库中提取目标文件 [p]:把静态库文件中指定的文件输出到标准设备 [q]:快速的追加文件到静态库

    Processed: 0.011, SQL: 9