如何创建和使用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 (编辑:滁州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!  | 
                  

