linux – 使内置的virtualbox内核模块,而不是模块,完成一半

linux – 使内置的virtualbox内核模块,而不是模块,完成一半,第1张

概述我正在尝试内置虚拟机内核模块,我几乎已经在这里完成了,但是在最后一步,它停止了编译,因为内核似乎将所有vbox *模块视为单个模块: drivers/vboxnetadp/built-in.o: In function `cleanup_module':(.exit.text+0x0): multiple definition of `cleanup_module'drivers/vboxdr 我正在尝试内置虚拟机内核模块,我几乎已经在这里完成了,但是在最后一步,它停止了编译,因为内核似乎将所有vBox *模块视为单个模块:

drivers/vBoxnetadp/built-in.o: In function `cleanup_module':(.exit.text+0x0): multiple deFinition of `cleanup_module'drivers/vBoxdrv/built-in.o:(.exit.text+0x0): first defined heredrivers/vBoxnetadp/built-in.o: In function `init_module':(.init.text+0x0): multiple deFinition of `init_module'.. suppressed output ...make[1]: *** [drivers/built-in.o] Error 1make: *** [drivers] Error 2

有什么想法吗 ?这是我如何得到的:

我将所有模块源复制到驱动程序文件夹,编辑makefile,放置一个obj-y = vBox /,并编辑vBox模块的所有Makefile,将obj-m更改为obj-y以使它们内置,非常脏的黑客,但工作.

编辑

为什么需要这样做?我需要在我的机器上禁用模块加载,因此不应该存在任何模块,我已经自己写了所有模块内置,只留下了vBox的模块

解决方法 我会说你的问题属于Stack Overflow,因为它基本上是一个c-programming-language-question.

您面临的问题是您尝试将两个(以前单独的)程序编译为一个.两者似乎都使用相同的功能 – 意味着在他们自己的上下文中.

我的猜测是你必须将所有这些多次出现的init_module或其他函数重命名为单独的名称空间(如net_init_module和drv_init_module).或许有一种方法可以将这些函数声明为“本地” – 我用C语言编程已经有一段时间……

总结

以上是内存溢出为你收集整理的linux – 使内置的virtualbox内核模块,而不是模块,完成一半全部内容,希望文章能够帮你解决linux – 使内置的virtualbox内核模块,而不是模块,完成一半所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1029178.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存