C 在linux内核中使用静态库

C 在linux内核中使用静态库,c,linux-kernel,lib,C,Linux Kernel,Lib,我正在为Linux内核开发一个模块。它在系统调用中为我的伙伴调用导出一些函数(我的伙伴在Linux内核中修改了系统调用源代码)。 我可以为我的模块构建静态库吗?我的合作伙伴可以只发送库、头文件吗?通常,我们提供这些作为内核模块本身。。。不是图书馆。。。。我不知道你到底是什么意思。您想运行“ar”命令并将其构建为静态库格式,并在编译时链接它吗 从未尝试过,但没有人在内核空间中尝试过 如果需要,可以制作单独的模块,即库 正如你们所知,printk、strcpy、memcpy和所有这些都可以在内核空间

我正在为Linux内核开发一个模块。它在系统调用中为我的伙伴调用导出一些函数(我的伙伴在Linux内核中修改了系统调用源代码)。
我可以为我的模块构建静态库吗?我的合作伙伴可以只发送库、头文件吗?

通常,我们提供这些作为内核模块本身。。。不是图书馆。。。。我不知道你到底是什么意思。您想运行“ar”命令并将其构建为静态库格式,并在编译时链接它吗

从未尝试过,但没有人在内核空间中尝试过

如果需要,可以制作单独的模块,即库


正如你们所知,printk、strcpy、memcpy和所有这些都可以在内核空间中使用,但据我所知,并没有人将其链接为“库格式”。

是的,你们可以,为什么不呢?你们意识到静态库基本上只是一个对象文件,对吗?或者您很好奇,如何链接内核Makefile中的静态库?您的意思是我可以在Linux内核中使用类似于*.o文件的库吗?不清楚为什么您不能将源代码发送给您的合作伙伴,甚至不清楚为什么您不共享同一个Git存储库。@rum不,我的意思是静态库只是一个归档的对象文件。在链接阶段,您的合作伙伴的代码当然可以链接到它,这只是正确准备他的Makefile的问题。但它在内核开发人员中并不常用,所以我不推荐它。0andriy告诉了您应该如何以最恰当的方式完成:只需与您的合作伙伴共享您的git repo(其中包含模块的源代码)。如果您的模块是专有的,并且您不想与您的合作伙伴共享代码(如果是,则非常糟糕),只需向他发送build
.ko
module.Kernel无法为静态库加载*.a文件。内核无法加载*.so文件。将库交付到内核的唯一方法是*.ko