简介Linux静态库知识


对于Linux系统你了解么?目前,Linux系统越来越受到电脑用户的欢迎,于是很多人开始学习Linux时,在这期间,你可能会遇到Linux静态库的编写和使用问题,这里将介绍Linux静态库的编写和使用问题的解决方法,在这里拿出来和大家分享一下。

1、概述

静态库文件的扩展名一般为.a,其编写步骤很简单。

⑴编写函数代码

⑵编译生成各目标文件

⑶用ar文件对目标文件归档,生成静态库文件。

注意归档文件名必须以lib打头。

使用要点:

⑴在gcc 的-I参数后加上静态库头文件的路径。

⑵在gcc 的-L参数后加上库文件所在目录

⑶在gcc 的-l参数后加上库文件名,但是要去掉lib和.a扩展名。

比如库文件名是libtest.a 那么参数就是 -l test

2、编写最简单的静态库文件

编写如下两个文件,注意放在同一目录中

myalib.h//静态库头文件

myalib.c//静态库实现文件

//myalib.h 文件的内容

void test();

//myalib.c 文件的内容

  1. #inlcude <stdio.h> 
  2. void test()  
  3. {  
  4. printf("test\n");  

3、制作库文件

⑴生成目标文件

gcc -c myalib.c

执行完后会生成一个myalib.o文件

⑵用ar命令归档,格式为ar -rc <生成的档案文件名> <.o文件名列表>

再次提醒,归档文件名一定要以lib打头, .a结尾。

ar -rc libtest.a myalib.o

执行完后会生成一个libtest.a文件

4、使用库文件

⑴编写一个测试程序main.c,内容为

//main.c 测试静态库调用的程序

#include "myalib.h"//要把函数的头文件包含进来,否则编译时会报错

  1. int main(int argc,char* argv[])  
  2. {  
  3. test();  
  4. return 0;    

⑵编译目标文件,注意要把静态库头文件的路径加到-I参数里面

gcc -I /root/exercise -o main.o -c main.c

现在生成了一个main.o文件

⑶生成可执行文件,注意要把静态库文件的路径加到-L参数里面,

把库文件名(去掉打头的lib和结尾的.a)加到-l参数后面。如下面所示

gcc -o main -L/root/exercisemain.o -ltest

此时就会生成一个名为main的可执行文件

另外,注意- l参数好象应该加到输入文件名的后面,否则会报错。

比如gcc -o main -L/root/exercise-ltest main.o就会提示

  1. main.o(.text+0x11): In function `main':  
  2. : undefined reference to `test'  
  3. collect2: ld returned 1 exit status 

原因我还不清楚:-)

⑷执行可执行文件查看效果

执行./main, 输出

test

说明执行成功。以上就是Linux静态库的编写和使用的简介。

  1. 配置笔记:Linux配置DNS服务器
  2. 讲解RedHat Linux 5显示中文的方法
  3. 教会你Redhat Enterprise Linux关闭SELinux
  4. 轻松完成Linux安装KDE软件包
  5. 阐述Redhat Linux配置远程桌面

相关内容

    暂无相关文章