内核驱动+系统调用方面的问题

各位大佬们好,本菜鸡正在做实验室的一个项目,目前遇到了一个问题,百思不得其解,希望大佬们帮帮忙,谢谢!





由于alloc_netdev()函数在ubuntu和centos系统下的参数个数不一样,为了整合成一套代码,我先用network_Card_Name()函数获取当前系统的版本,并将其返回。
接着在tteVnetInit()函数里调用network_Card_Name()函数,从而将当前系统版本表示值赋给指针myVersion,然后就是常见的if...else...语句了,然而编译的结果却是下面这样的

真的很不理解,求大佬帮忙!








#学习路径#
全部评论
不行啊,你既然在代码中调用了alloc_netdev函数,那必然要有对应的函数实现的。。你在centos下运行,4个参数的alloc_netdev找不到具体实现,你在ubuntu下运行,3个参数的alloc_netdev找不到实现。。
点赞 回复 分享
发布于 2021-04-25 17:28
你看看c++标准库的代码都是怎么写的,里面有#ifdef这种用法,在预编译的时候根据平台选择不同的代码
点赞 回复 分享
发布于 2021-04-25 17:32

相关推荐

今天 13:29
已编辑
湖南铁道职业技术学院 后端
小红书 后端选手 n*16*1.18+签字费期权
点赞 评论 收藏
分享
ArisRobert:统一解释一下,第4点的意思是,公司按需通知员工,没被通知到的员工是没法去上班的,所以只要没被通知到,就自动离职。就是一种比较抽象的裁员。
点赞 评论 收藏
分享
一颗宏心:华为HR晚上过了十二点后还给我法消息。
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务