共计 657 个字符,预计需要花费 2 分钟才能阅读完成。
导读 | 之前在 centos7 下遇到因 gcc 版本问题导致编译出来的内核模块插入后移除时报 Device or resource busy 异常,详见 https://blog.51cto.com/boytnt/3026897,当时排查出来编译时使用的 gcc 与系统 gcc 版本不一致导致的,今天试着升级一下 gcc。 |
默认使用 yum install gcc 安装出来的 gcc 版本是 4.8.5,可以升级到 8.3.1,需要执行:
yum install centos-release-scl
yum install devtoolset-8-gcc*
安装完成后新版的 gcc 与 g ++ 安装在 /opt/rh/devtoolset- 8 目录下,如果需要临时生效,可以执行:
source /opt/rh/devtoolset-8/enable
如果需要永久生效,可以把 devtoolset- 8 里的 gcc 和 g ++ 链接到 /usr/bin 去:
mv /usr/bin/gcc /usr/bin/gcc-4.8.5
ln -s /opt/rh/devtoolset-8/root/bin/gcc /usr/bin/gcc
mv /usr/bin/g++ /usr/bin/g++-4.8.5
ln -s /opt/rh/devtoolset-8/root/bin/g++ /usr/bin/g++
再用 gcc - v 就能看到版本已变为 8.3.1。此时编译出的内核模块就能正常 rmmod 卸载了。
正文完
星哥玩云-微信公众号