打印
[嵌入式Linux]

linux驱动之一___ 编译文件类型

[复制链接]
762|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
千岁寒|  楼主 | 2018-8-17 18:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
.o ----是目标文件,相当于windows中的.obj文件(一般由.c文件通过gcc编译过来)

.a ----是静态库,由多个.o组成在一起,用于静态连接

.ko ---- kernel object,内核模块,是Linux 2.6内核使用的动态连接文件的后缀名,也就是模块文件,用来在Linux系统启动时加载内核模块。

.o文件也是object文件,.ko文件是kernel object文件。
    .ko与.o的区别在于其多了一些sections,比如.modinfo。.modinfo section是由kernel source里的modpost工具生成的,包括MODULE_AUTHOR, MODULE_DESCRIPTION, MODULE_LICENSE, device ID table以及模块依赖关系等等。depmod工具根据.modinfo section生成modules.dep, modules.*map等文件,以便modprobe更方便的加载模块。

.so ----shared object,为共享库,是用户层的动态库,用于动态连接的,和dll差不多。使用同一个.so的程序在运行时只需要该.so的同一份拷贝。

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

72

主题

244

帖子

4

粉丝