码迷,mamicode.com
首页 > 系统相关 > 详细

Linux静态库逐步详解

时间:2014-08-26 00:32:18      阅读:284      评论:0      收藏:0      [点我收藏+]

标签:命令行界面   linux   c   静态库   

一 源文件

下载有如下两个源文件:

/* bill.c */
#include <stdio.h>


void bill(char* arg)
{
    printf("bill: we passed %s\n", arg) ;
}

/* fred.c */

#include <stdio.h>
<pre name="code" class="cpp">
void fred(int arg){ printf("fred: we passed %d\n", arg) ;}


编译生成.o文件:

gcc -c *.c

二 头文件

添加一个头文件,声明上述两个函数,用于静态库调用时使用。

/* lib.h */

void bill(char *) ;
void fred(int) ;

三 主程序

/* main.c */

#include <stdlib.h>
#include "lib.h"

int main()
{
    bill("Hello World") ;
    exit(0) ;
}


四 运行

gcc -c main.c


gcc -o main main.o bill.o

这样就可以生成一个可执行文件main了。

但是这样不是太方便,加入有很多.o文件的话,每次都需要写一大篇,很是麻烦,

因此,就有了静态库。静态库就是将.o文件打包成一个.a文件


五 生成静态库

ar crv libfoo.a bill.o fred.o

这样就得到了一个libfoo.a文件。


六 使用静态库

gcc -o main main.o libfoo.a

另一种方式更为常用:

gcc -o main main.o -L. -lfoo

-L是指定库文件的路径,"."表示当前文件下。

-l是指定库文件名为foo,即libfoo.a,Linux下静态库的命名规则为libxxx.a


七 查看静态库中的文件

可是使用nm命令查看可执行文件和.o文件中包含的函数,例如:

nm libfoo.a

或者

nm main





Linux静态库逐步详解

标签:命令行界面   linux   c   静态库   

原文地址:http://blog.csdn.net/xufeng0991/article/details/38830879

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!