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

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

时间:2024-12-30 10:10:52浏览次数:1  
标签:std gcc 12 did sudo uint8 ++ 报错

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/gcc gcc /usr/bin/g++-12 20
# 注:最后一个数字20是优先级,除非存在多个gcc g++版本,这个数字无需更改

标签:std,gcc,12,did,sudo,uint8,++,报错
From: https://www.cnblogs.com/ziyulab/p/18640214

相关文章

  • Android13编译报错build/make/core/base_rules.mk:304: error: vendor/ma/prebuilts/t
    前言全局说明一、说明1.1环境:Android13二、报错build/make/core/base_rules.mk:304:error:vendor/ma/prebuilts/third_party/atlas/iadfs/qa/qtu:unhandledinstallpath"TARGET_OUT_DATA_EXECUTABLESforqtxtrics".三、解决方法3.1增加LOCAL_MODULE_PATH......
  • 2024-12-25《linux上安装redis报错》
     在linux上安装redis时,首先要安装c/c++编译器,然后安装redis,不然redis跑不了,安装时报错:cdsrc&&makeallmake[1]:Enteringdirectory'/opt/redis-7.0.0/src'CCMakefile.depCCserver.oInfileincludedfromserver.c:30:server.h:57:10:fatalerror:systemd......
  • 2024-11-28《关于mybatis创建的mapper映射路径不对导致的系列报错》
    关于mybatis创建的mapper映射路径不对导致的系列报错 今天在写mybatis项目的时候,使用注解发现无法使用别名,添加ResultMap的时候直接报错显示无法解析。经过百度了好久也是成功的发现了问题的所在,就是这个:这个路径创建的时候我以为创建的是分级目录,实际上创建成为了com.inn......
  • DevEco Studio使用模拟器报错,解决办法
    在进行鸿蒙应用开发时,很多开发者没有鸿蒙系统的设备,无法在鸿蒙系统真机上进行调试,这时就需要使用官方提供的模拟器。在菜单栏Tools---DeviceManager,打开模拟器弹窗,登录华为账号后即可进行模拟器管理。但在模拟器下载后,点击右侧Actions启动时,会遇到提示报错“模拟器启动失败,当前......
  • std::any_of
    std::any_ofstd::any_of是C++11引入的一个算法函数,位于头文件<algorithm>中。它用于检查给定范围内是否有任何元素满足特定条件。以下是关于std::any_of的详细解析:功能描述:检查范围[first,last)内是否有任何元素满足由谓词(predicate)定义的条件。如果有任意一个元......
  • 网站手机访问报错“The table common_visit is full”的解决方法
    您好,关于您提到的网站手机访问时出现错误“Thetablecommon_visitisfull”,我们非常理解您的困扰。这个错误通常是由于用户访问日志表(common_visit)空间不足引起的。为了帮助您解决这个问题,以下是详细的分析和解决方案:原因分析:日志表容量限制:当用户访问量较大时,common_visit......
  • 使用 `hash-wasm` 的 `createMD5`方法,生成md5值,批处理500张图片会报错, `RangeError: W
    处理大量文件时遇到RangeError:WebAssembly.instantiate():Outofmemory错误,通常是因为一次性创建了过多的WebAssembly实例,导致内存不足。每个createMD5()调用都会创建一个新的WebAssembly实例,这对于大量的并发操作来说是不可行的。为了优化代码并避免此问题,可以考虑......
  • SLF4J(W)报错No SLF4J providers were found.
    问题SLF4J(W):NoSLF4Jproviderswerefound.SLF4J(W):Defaultingtono-operation(NOP)loggerimplementationSLF4J(W):Seehttps://www.slf4j.org/codes.html#noProvidersforfurtherdetails.在开发项目时,如果我们的项目使用了SLF4J,或者引入了某开源项目时,他的项目......
  • C++中for (int i; i<track_object.region_num; i++)这样写没有对i进行初始化0也不会报
    在C++中,未初始化的局部变量(如 inti)会包含未定义的值,可能导致未定义行为(undefinedbehavior,UB)。对于以下代码:for(inti;i<track_object.region_num;i++){//Loopbody}i 没有显式初始化,因此它的初始值是未定义的。然而,你观察到代码运行时没有报错的原因可能......
  • C++ 中将 float 类型转换为 std::string
    在C++中,可以使用多种方法将 float 类型转换为 std::string 类型。以下是常用的几种方法:方法1:std::to_string (C++11及以上)这是最简单的方法之一,直接使用 std::to_string。#include<iostream>#include<string>intmain(){floatnum=123.456f;std::......