编译dpdk报错,以及kernel-devel与内核版本不一致的解决办法

7 篇文章 0 订阅

编译dpdk-1.8时候报错
‘PCI_MSIX_ENTRY_CTRL_MASKBIT’ undeclared (first use in this function)

原因是安装服务器操作系统centos6.5的时候装的是简化版,不带开发环境包
ls /usr/src/kernels/
显示为空
于是直接在线安装了kernel-devel和gcc。

下面的做法是错误的:

sudo yum install “kernel-devel-uname-r == $(uname -r)”
会提示找不到 kernel-devel-2.6.32-431.el6.x86_64.rpm,去kernel-devel的站点也没有这个版本了。
sudo yum install kernel-devel
安装的是kernel-devel-2.6.32-745.el6.x86_64.rpm,于是安装完后再装gcc,编译就会报这个错,内核开发环境和内核版本不一致。
只能卸载kernel-devel,重新装和内核版本一致的开发环境。可能也不需要卸载,再装一个就可以;但会报有更高的版本,安装不了;实际上是可以多个kernel-devel版本并存的。需要先装低版本再装高版本,然后需要使用哪个版本的话再执行以下操作,我是全部删掉了之前的内核开发环境。

#cd /lib/modules/2.6.32-431.el6.x86_64
#ln -s ../../../usr/src/kernels/2.6.32-431.el6.x86_64 build
#ln -s build source

正确的安装步骤:

1、查看和下载kernel-devel版本

#uname -a

查看内核的版本为:
Linux bogon 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
下载内核开发环境rpm安装包,google一个可下载的rpm包:

#wget ftp://ftp.pbone.net/mirror/ftp.scientificlinux.org/linux/scientific/6.0/x86_64/updates/security/kernel-devel-2.6.32-431.el6.x86_64.rpm

2、查看是否已经安装了内核开发环境包:

#uname -a ; rpm -qa kernel\* | sort

kernel-2.6.32-431.el6.x86_64
kernel-devel-2.6.32-745.el6.x86_64
kernel-firmware-2.6.32-745.el6.noarch
之前使用yum instaill直接安装的kernel-devel版本跟内核版本对不上,如果已经安装了执行:

#yum remove kernel-devel-2.6.32-745.18.2.el6.x86_64

卸载安装

3、安装下载好的内核版本对应的开发包:

#rpm -ivh kernel-devel-2.6.32-431.el6.x86_64.rpm

4、安装gcc和g++

#yum install gcc
#yum install gcc-c++
  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值