如何创建和使用Linux静态/动态链接库
副标题[/!--empirenews.page--] 和Windows系统一样Linux也有静态/动态链接库,下面介绍创建和使用方法: 假设有下面几个文件: 头文件String.h,声明相关函数原形,内容如下: Strlen.c:函数Strlen的实现,获取给定字符串的长度,内容如下: Strlnen.c:函数StrNlen的实现,获取给定字符串的长度,如果输入字符串的长度大于指定的最大长度,则返回最大长度,否者返回字符串的实际长度,内容如下: 生成静态库: 利用GCC生成对应目标文件: gcc –c Strlen.c Strnlen.c 如果对应的文件没有错误,gcc会对文件进行编译生成Strlen.o和Strnlen.o两个目标文件(相当于windows下的obj文件)。然后用ar创建一个名字为libstr.a的库文件,并把Strlen.o 和Strnlen.o的内容插入到对应的库文件中。,相关命令如下: ar –rc libstr.a Strlen.o Strnlen.o 命令执行成功以后,对应的静态库libstr.a已经成功生成。 <span style="font-size:18px;"><strong>/*********************************** Filename : String.h Description : Author : HCJ Date : 2006-5-7 ************************************/ int Strlen(char *pStr); int StrNlen(char *pStr, unsigned long ulMaxLen); /************************************** Filename : get string length Description : Author : HCJ Date : 2006/5/7 **************************************/ #include<stdio.h> #include<assert.h> int Strlen(char *pStr) { unsigned long ulLength; assert(NULL != pStr); ulLength = 0; while(*pStr++) { ulLength++; } return ulLength; } ********************************************** Fileneme: mystrnlen.c Description: get input string length,if string large max length input return max length, else real length Author: HCJ Date : 2006-5-7 **********************************************/ #include<stdio.h> #include<assert.h> int StrNlen(char *pStr, unsigned long ulMaxLen) { unsigned long ulLength; assert(NULL != pStr); if(ulMaxLen <= 0) { printf("Wrong Max Length!n"); return -1; } ulLength = 0; while(*pStr++ && ulLength < ulMaxLen) { ulLength++; } return ulLength; } </strong></span> 本文URL地址:http://www.bianceng.cn/OS/Linux/201410/45420.htm (编辑:应用网_丽江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |