linux下.so、.ko、.a的区别

各类文件的区别与作用:

1、对于.so文件

     .so文件是用户层的动态链接库,用于用户层的动态链接使用,内核态的代码同样不能直接访问。

2、对于.ko文件

obj-m = *.o
obj-y = *.o
上面两者的区别在于,前者才会生成ko文件,后者只是代码编译进内核,并不生成ko文件。

     .ko文件是内核态的动态链接库,用于内核态的动态链接使用,可以用于内核之间的模块相互调用。用户态的代码不可直接调用内核态的代码,但是可以通过其他方式进行通信。

3、对于.a文件

    .a文件是用于静态链接时,使用的静态库。

4、对于.o文件

    .o文件是目标文件,编译生成,.a文件就是由.o文件打包生成的。

原文地址:https://www.cnblogs.com/Ph-one/p/8534765.html