易截截图软件、单文件、免安装、纯绿色、仅160KB

Linux静态/动态链接库的创建和使用



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已经成功生成。
/***********************************
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 


相关文档:

linux socket 优化


linux socket 优化
2008-06-12 16:40
使用 Sockets API,我们可以开发客户机和服务器应用程序,它们可以在本地网络上进行通信,也可以通过 Internet 在全球范围内进行通信。与其他 API 一样,您可以通过一些方法使用 Sockets API,从而提高 Socket 的性能,或者限制 Socket 的性能。本文探索了 4 种使用 Sockets API 来 ......

linux gcc 命令

1,-c 编译目标代码
      gcc -o hello.o -c hello.c  //-o 只是指定生成目标文件名
      或
      gcc -c hello.c
      都生成hello.o文件,不可以执行。
      gcc -o hello hello.o
      用目标文件生成hell ......

linux开机过程深入理解

Linux开机过程理解
一.           Power on
二.           BIOS加电自检:
1.  检测所有周边硬件
2.  寻找启动的磁盘(cd-rom,floppy,IDE HDD,usb device等)
三.     & ......

linux gcc 编译时头文件和库文件搜索路径

一、头文件
 
gcc 在编译时寻找所需要的头文件 :
 
※搜寻会从-I开始
 
※然后找gcc的环境变量 C_INCLUDE_PATH,CPLUS_INCLUDE_PATH,OBJC_INCLUDE_PATH
 
※再找内定目录
/usr/include 
/usr/local/include
/usr/lib/gcc-lib/i386-linux/2.95.2/include
/usr/lib/gcc-lib/i386-l ......

一个Linux下C线程池的实现

      什么时候需要创建线程池呢?简单的说,如果一个应用需要频繁的创建和销毁线程,而任务执行的时间又非常短,这样线程创建和销毁的带来的开销就不容忽视,这时也是线程池该出场的机会了。如果线程创建和销毁时间相比任务执行时间可以忽略不计,则没有必要使用线程池了。
   下面是 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号