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

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





由于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
阅文集团
校招火热招聘中
官网直投

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务