Ubuntu18.04编译space-nerds-in-space遇-Wstringop-truncation错误求助
解决Ubuntu 18.04编译space-nerds-in-space时的
-Wstringop-truncation错误 Ubuntu 18.04默认搭载的gcc版本是gcc-7,而-Wstringop-truncation编译选项是gcc-8及以上版本才新增的,这就是编译报错的核心原因。以下是几种可行的解决方法:
升级gcc到支持该选项的版本
- 安装gcc-8:
sudo apt update sudo apt install gcc-8 g++-8 - 将gcc-8设为默认编译器:
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 800 --slave /usr/bin/g++ g++ /usr/bin/g++-8 - 验证版本:
确认输出显示版本为8.x后,重新执行gcc --versionmake即可。
- 安装gcc-8:
修改项目Makefile移除该选项
- 用命令定位选项所在行:
grep -n "-Wstringop-truncation" Makefile - 打开Makefile,删除或注释掉包含
-Wstringop-truncation的编译参数行,保存文件。 - 重新执行
make编译。
- 用命令定位选项所在行:
临时指定gcc-8编译
如果不想修改系统默认编译器,可在执行make时临时指定编译器:CC=gcc-8 make
内容的提问来源于stack exchange,提问作者Roger B
相关产品推荐
相关产品推荐

