You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 20.04部署CryptDB编译时报g++-4.7未找到错误127如何解决

Ubuntu 20.04 编译CryptDB g++-4.7 缺失问题解决方案

报错核心原因:Ubuntu 20.04 官方软件源已移除 gcc 4.7 相关套件,直接通过默认源安装无法找到对应包,且旧版本gcc在新版系统下存在依赖兼容问题。

方案1:修改项目Makefile替换编译器(优先尝试,操作最简单)

  • 进入Practical-Cryptdb项目根目录,打开根目录下的Makefile文件
  • 查找所有指定编译器的配置行,将CC = gcc-4.7替换为系统已有的高版本gcc(如Ubuntu20.04默认的gcc-9),CXX = g++-4.7替换为对应的g++-9,修改后示例:
CC = gcc-9
CXX = g++-9
  • 查找编译参数中的-Werror配置,将其删除:高版本gcc的警告规则更严格,旧代码触发的警告会被-Werror判定为错误直接终止编译
  • 可同时将编译参数中的-std=c++0x替换为-std=c++11,提升高版本编译器的兼容性
  • 保存修改后执行make clean清理之前的编译缓存,再重新执行make命令编译即可

方案2:添加旧版本源手动安装g++-4.7

  • 先备份系统原有源配置:cp /etc/apt/sources.list /etc/apt/sources.list.bak
  • 编辑/etc/apt/sources.list文件,在末尾添加Ubuntu 16.04(xenial)的软件源:
deb http://dk.archive.ubuntu.com/ubuntu/ xenial main
deb http://dk.archive.ubuntu.com/ubuntu/ xenial universe
  • 执行更新并安装对应套件:
apt update
apt install -y gcc-4.7 g++-4.7
  • 安装完成后执行g++-4.7 --version验证安装是否成功,验证通过后即可回到项目目录重新编译
  • 注意:编译完成后建议将刚才添加的xenial源注释或删除,避免后续系统更新时其他套件被意外降级引发故障

方案3:通过Docker使用Ubuntu 16.04环境编译(兼容性最佳,无依赖冲突)

  • 首先在宿主机安装Docker:apt install -y docker.io
  • 拉取Ubuntu 16.04官方镜像:docker pull ubuntu:16.04
  • 启动容器并将本地项目目录挂载到容器内:
docker run -it -v /root/Practical-Cryptdb:/data/Practical-Cryptdb ubuntu:16.04 /bin/bash
  • 进入容器后执行环境配置:
apt update
apt install -y gcc-4.7 g++-4.7 make libmysqlclient-dev libssl-dev
  • 进入容器内的/data/Practical-Cryptdb目录执行编译即可,编译完成后的产物可直接在容器内运行,也可以拷贝到宿主机使用

内容的提问来源于stack exchange,提问作者Thành Hoàng

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 20:06:03