Linux下.ko, .o, .so, .a, .la文件
Linux下文件的类型是不依赖于其后缀名的,但一般来讲:
- .ko?是Linux 2.6内核使用的动态连接文件的后缀名,也就是模块文件,用来在Linux系统启动时加载内核模块
- .o?是目标文件,相当于windows中的.obj文件
- .so?为共享库,是shared object,用于动态连接的,和dll差不多
- .a?为静态库,是好多个.o合在一起,用于静态连接
- .la?为libtool自动生成的一些共享库,vi编辑查看,主要记录了一些配置信息。可以用如下命令查看file *.la来查看文件类型
创建.a库文件和.o库文件:
$ gcc -c mylib.c
$ ar -r mylib.a mylib.o
动态链接库*.so的编译与使用
1、动态库的编译?
下面通过一个例子来介绍如何生成一个动态库。这里有一个头文件,三个.c文件:
so_test.h
test_a.c
test_b.c
test_c.c
我们将这几个文件编译成一个动态库:libtest.so。
?
代码
so_test.h:
#include <stdio.h>
#include <stdlib.h>
void test_a();
void test_b();
void test_c();
test_a.c:
#include \"so_test.h\"
void test_a()
{
printf(\"this is in test_a...\\n\");
}
test_b.c:
#include \"so_test.h\"
免责声明: 本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。