Ubuntu 24.04 编译出现 error: ‘uint8_t’ is not a member of ‘std’; did you mean ‘wint_t’? 报错的解决方法

1. 情况说明

安装ubuntu24.04编译某C++开源项目时遇到上述编译报错,uint8_t 不是命名空间 std 下的成员即std::uint8_t未定义

2. 原因

具体原因我也不是很清楚,不过在网上搜到的一篇日本网友的文章:Ubuntu 24.04にしたら、C++コンパイルでエラー(‘uint8_t’ was not declared in this)になった件提到了这个问题。可能是由于gcc和g++是13版本的,而22.04是12版本的而导致编译器不支持std::uint8_t,因此我们只需要退回到12版本即可。

3. 解决

# 卸载当前版本的g++和gcc
sudo apt remove g++
sudo apt remove gcc

sudo apt install g++-12 # 这将自动安装gcc


# 将gcc和g++的默认版本指定为当前的12版本
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 20
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 20
# 注:最后一个数字20是优先级,除非存在多个gcc g++版本,这个数字无需更改
posted @ 2024-12-30 10:03  子の雨  阅读(22)  评论(0编辑  收藏  举报