CentOS 7 编译 fatal error: netinet/sctp.h: No such file or directory

问题描述

开发环境

  • CentOS 7.6 X86-64
  • yum 源是用的本地源 CentOS-7-x86_64-DVD-1908.iso

问题描述

编译代码提示 netinet/sctp.h: No such file or directory,Log 如下:

fatal error: netinet/sctp.h: No such file or directory
 #include <netinet/sctp.h>
                          ^
compilation terminated.

尝试解决

猜测应该是缺少安装 lksctp-tools。然而使用 rpm 检查发现,其实是已经安装有的,So,问题优点诡异。

[root@Centos ~]# rpm -qa |grep sctp
lksctp-tools-1.0.17-2.el7.x86_64

或者

[root@Centos ~]# yum list lksctp*
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
Installed Packages
lksctp-tools.x86_64                                 1.0.17-2.el7                                  @rhel-source
[root@typhoon-base-unit0 ~]#

此次,直接在 /usr/ 下面查找 sctp.h 文件,也是没发现 netinet/sctp.h。

[root@Centos ~]# find . -iname sctp.h
./include/linux/sctp.h
./src/kernels/3.10.0-957.el7.x86_64/include/config/ip/sctp.h
./src/kernels/3.10.0-957.el7.x86_64/include/config/ip/vs/proto/sctp.h
./src/kernels/3.10.0-957.el7.x86_64/include/config/netfilter/xt/match/sctp.h
./src/kernels/3.10.0-957.el7.x86_64/include/config/nf/ct/proto/sctp.h
./src/kernels/3.10.0-957.el7.x86_64/include/config/nf/nat/proto/sctp.h
./src/kernels/3.10.0-957.el7.x86_64/include/linux/sctp.h
./src/kernels/3.10.0-957.el7.x86_64/include/net/sctp/sctp.h
./src/kernels/3.10.0-957.el7.x86_64/include/net/netns/sctp.h
./src/kernels/3.10.0-957.el7.x86_64/include/uapi/linux/sctp.h

解决办法

首先尝试安装多个依赖库,方式如下,包括重新安装,好像都不可以。

yum install lksctp-tools*       #安装所有lksctp-tools相关库
yum install lksctps*            #安装所有lksctps相关库
yum reinstall lksctp-tools      #重新安装lksctp-tools

后面了解到,是需要使用 CentOS-7-x86_64-Everything-1908.iso 镜像才可以。
需要重新镜像(本地镜配置像请出门左转),然后就可以了。如果还是不行,把之前安装的 lksctp-tools 卸载后,重新安装即可。

yum install lksctp-tools*       #安装所有与lksctp-tools相关库
yum erase lksctp-tools          #卸载lksctp-tools库

rpm -e lksctp-tools*            #卸载lksctp-tools库
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值