GCC版本升高到11.3后编译之前同样的C++代码出现的若干错误

news2025/1/26 11:34:59

目录

1 gtest-death-test.cc:1301:24: error: ‘dummy’ may be used uninitialized

 2 error: ‘void* memcpy(void*, const void*, size_t)’ copying an object of non-trivial type ‘Eigen::internal::Packet4c’

3  error: comparison is always true due to limited range of data type [-Werror=type-limits]

4 loop_test.cc:561:23: error: ‘sleep_for’ is not a member of ‘std::this_thread’


最开始我是用的低版本的gcc编译的onnxruntime,按照下面博客的方式编译的。ubuntu交叉编译(armv7_32位)onnx源码_cpu版本_onnxruntime交叉编译_陈 洪 伟的博客-CSDN博客后来某项目中用11.3.1版本的aarch64-linux-gnu-g++再次编译时出现了很多错误,记录一下。

1 gtest-death-test.cc:1301:24: error: ‘dummy’ may be used uninitialized

在某一次用gcc11再次重新编译这个onnxruntime的时候报下面的错误

gtest-death-test.cc:1301:24: error: ‘dummy’ may be used uninitialized

 google搜索得到:Fix warning maybe-uninitialized by Thomas-Barbier-1A · Pull Request #3024 · google/googletest · GitHub

其实就是把警告当错误了,代码改一下初始化就没事了。 

 2 error: ‘void* memcpy(void*, const void*, size_t)’ copying an object of non-trivial type ‘Eigen::internal::Packet4c’

又出现了如下错误 

 /data/chw/onnxruntime_master/cmake/external/eigen/unsupported/Eigen/CXX11/../../../Eigen/src/Core/arch/NEON/PacketMath.h:1678:9: error: ‘void* memcpy(void*, const void*, size_t)’ copying an object of non-trivial type ‘Eigen::internal::Packet4c’ {aka ‘struct Eigen::internal::eigen_packet_wrapper<int, 2>’} from an array of ‘const int8_t’ {aka ‘const signed char’} [-Werror=class-memaccess]
1678 | memcpy(&res, from, sizeof(Packet4c));

直接问Bing AI 

 -Werror=class-memaccess是一个编译器选项,它将“类成员访问”警告视为错误。这意味着,如果您在编译C++代码时使用了这个选项,那么当编译器检测到您的代码中存在潜在的类成员访问问题时,它会报错并停止编译。

类成员访问警告通常发生在使用memcpymemset等函数直接操作类对象内存时。这些函数可能会破坏类的封装性,并导致未定义行为。因此,使用-Werror=class-memaccess选项可以帮助您检测并修复这些问题,以提高代码的安全性和可靠性。

希望这些信息能够帮助您了解-Werror=class-memaccess选项的含义。如果您还有其他问题,请随时告诉我。😊

https://www.cnblogs.com/azureology/p/14891671.html

根据这篇文章,我在CMakeLists.txt里面增加下面的内容,该报错消失。

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error=class-memaccess")

3  error: comparison is always true due to limited range of data type [-Werror=type-limits]

onnxruntime_master/cmake/external/json/single_include/nlohmann/json.hpp:8494:24: error: comparison is always true due to limited range of data type [-Werror=type-limits]
 8494 |             if ('\x00' <= c and c <= '\x1F')

直接问Bing AI 

 于是我在CMakeLists.txt里面增加如下内容

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error=type-limits")

4 loop_test.cc:561:23: error: ‘sleep_for’ is not a member of ‘std::this_thread’

继续编译,又出现下面的报错, 

onnxruntime_master/onnxruntime/test/providers/cpu/controlflow/loop_test.cc:561:23: error: ‘sleep_for’ is not a member of ‘std::this_thread’
  561 |     std::this_thread::sleep_for(std::chrono::seconds(3));

我在cmakelist里面增加如下内容

add_definitions(-D_GLIBCXX_USE_NANOSLEEP) 

添加上之后,还有报错,只是报错位置貌似变了,然后根据如下博客安装opencv4.4时出现错误 error: ‘sleep_for’ is not a member of ‘std::this_thread‘_安装open4.5时出现sleep_for(std::chrono::milliseconds{2}_changym5的博客-CSDN博客

我在loop_test.cc里面增加 

#include <thread>

最后

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/829859.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

京东开源的、高效的企业级表格可视化搭建解决方案:DripTable

DripTable 是京东零售推出的一款用于企业级中后台的动态列表解决方案&#xff0c;项目基于 React 和 JSON Schema&#xff0c;旨在通过简单配置快速生成页面动态列表来降低列表开发难度、提高工作效率。 DripTable 目前包含以下子项目&#xff1a;drip-table、drip-table-gene…

JDK8:Stream流0基础使用与深入理解,Stream流源码分析

文章目录 一、概述二、集合操作演进对比1、JDK7传统方式2、JDK8 使用Stream3、小结 三、流实现思想1、外部迭代2、内部迭代 四、函数式编程五、流操作详解1、流的分类&#xff08;1&#xff09;中间操作&#xff08;2&#xff09;终止操作 2、构建流&#xff08;1&#xff09;基…

元素内容必须由格式正确的字符数据或标记组成

mybatis报错&#xff1a; 元素内容必须由格式正确的字符数据或标记组成 代码&#xff1a; 原因分析&#xff1a; 经过查找&#xff0c;使用 解决方案&#xff1a; 使用<![CDATA[ SQL语句 ]]> 将含有<、>、<、>的sql语句包含进去。 第二种方法&#…

STM32 低功耗学习

STM32 电源系统结构介绍 电源系统&#xff1a;VDDA供电区域、VDD供电区域、1.8V供电区域、后备供电区域。 器件的工作电压&#xff08;VDD&#xff09;2.0~3.6V 为了提高转换精度&#xff0c;给模拟外设独立供电。电压调节器为1.8V供电区域供电&#xff0c;且1.8V供电区域是电…

《MySQL》第十四篇 COUNT(*)和 COUNT(1)的区别

本文旨在介绍COUNT(*&#xff09;&#xff0c;COUNT(1&#xff09;&#xff0c;COUNT(col&#xff09;三者之间区别和使用索引的情况&#xff0c;count() 函数是用来统计行数用的&#xff0c;以下内容均是个人实践模拟结果&#xff0c;仅供参考&#xff1b; 阿里规范中详细描述…

seata 启动报错 Could not create connection to database server

文章目录 报错信息1、驱动包问题2、高版本驱动类名称问题3、url 时区问题4、驱动包位置问题 环境&#xff1a; 操作系统&#xff1a;windows 10seata版本&#xff1a;seata-server-1.6.1数据库版本&#xff1a;mysql 8.0.33 报错信息 seata启动报错com.mysql.jdbc.exception…

流程图如何制作?5步快速画出好看的流程图!

流程图是一种图形化工具&#xff0c;描述某个过程或者操作的步骤&#xff0c;以及某种业务系统的具体流程。流程图通常由各种图形符号、形状、箭头组成&#xff0c;可以清晰的表示出流程或系统中各种步骤、每个环节之间的关系、条件判断、数据的流动和处理过程等。 在线流程图软…

npm install时出现的问题Failed at the node-sass@4.14.1 postinstall script

从阿里云上拉取下来项目后&#xff0c;首先使用npm install 命令进行安装所需依赖&#xff0c;意想不到的事情发生了&#xff0c;报出了Failed at the node-sass4.14.1 postinstall script&#xff0c;这个问题&#xff0c;顿时一脸懵逼&#xff1b;询问前端大佬&#xff0c;给…

斯坦福:小鼠植入人脑组织后继续生长

美国科学家的一项新研究表明&#xff0c;移植到大鼠体内的微型人脑结构可以发送信号&#xff0c;并对大鼠胡须感受到的环境线索作出反应。该研究证明从人类干细胞中生长的神经元可以与活体啮齿动物的神经细胞结合&#xff0c;或可为人类大脑疾病的治疗提供新方法。相关研究结果…

《云管理产品与服务图谱(2023)》发布!MIAOYUN荣登【运维平台】板块

2023年7月25日&#xff0c;中国信息通信研究院&#xff08;以下简称“中国信通院”&#xff09;和中国通信标准化协会联合主办的2023第十届可信云大会在北京召开。大会以“云领创新 算启新篇”为主题&#xff0c;就云计算产业发展现状和趋势等进行了研讨&#xff0c;并发布了《…

Linux权限小结

Linux权限小结 权限的基本介绍 ls -l中显示的内容如下&#xff1a;drwxr-xr-x. 2 yinjun yinjun 87 8月 2 16:24 test&#xff0c;如下图所示 前十位介绍 其中&#xff0c;0-9位为drwxr-xr-x&#xff0c;其说明情况如下 第0位确定文件类型&#xff0c;包括d&#xff0c;-&a…

Webots资源缓存文件包的使用方法

已经很久没有使用过Webots了&#xff0c;现在发现&#xff0c;资源包变成了在线加载&#xff0c;但是加载的实在太慢了&#xff0c;在官方github的release界面发现提供了离线包&#xff0c;以R2023b为例&#xff1a; 下载完后&#xff0c;将该压缩文件内的二进制缓存文件复制到…

与它更近一步,MySql怎么这么多的锁?

我们大多都知道行锁锁住的是一行数据&#xff0c;也知道怎么避免行锁造成的阻塞语句问题&#xff0c;但是还是有很多复杂情况&#xff0c;去加了很多锁&#xff0c;如间隙锁以及next-key lock&#xff0c;甚至他们的混合锁&#xff0c;如果这个不了解&#xff0c;搞不好就是语句…

为什么流程工业需要合适的预测性维护方案?

在当今工业中&#xff0c;预测性维护是一项至关重要的战略&#xff0c;它能够帮助企业预测设备故障并防止代价高昂的停机。然而&#xff0c;对于流程制造和离散制造来说&#xff0c;选择合适的预测性维护解决方案是至关重要的&#xff0c;因为这两类行业在设备运营和维护方面存…

商机管理是什么?如何有效地进行商机管理?

本篇文章&#xff0c;您可以了解&#xff1a;1、商机管理是什么&#xff1b;2、如何做好商机管理。 在当今竞争激烈的商业世界&#xff0c;商机就像隐藏在茫茫大海中的珍宝&#xff0c;等待着智慧的航海家去发现。作为一名经验丰富的顾问&#xff0c;我将与你一同探索商机管理…

使用idea实现git操作大全(在项目开发中遇到的实际情况

使用idea实现git操作大全&#xff08;在项目开发中遇到的实际情况&#xff09; 1.安装git插件2.在开发中切记拉一个自己的分支 1.安装git插件 2.在开发中切记拉一个自己的分支 选中需要拉的分支&#xff0c;右键该分支&#xff0c;选中new breach from “分支”&#xff0c;点…

2023 电赛 E 题 K210 方案--K210实现矩形识别

相关库介绍 sensor&#xff08;摄像头&#xff09; sensor.reset() sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.QVGA) sensor.skip_frames(10) reset()&#xff1a;重置并初始化单目摄像头 set_pixformat()&#xff1a;设置摄像头输出格式&#xff0c…

开发框架软件公司:与之携手,共同开启办公流程化之路!

在快节奏的社会里&#xff0c;如何提高企业的办公效率&#xff1f;如何让各部门之间的协作关系更为顺畅&#xff1f;如何把企业内部的数据真正利用起来&#xff0c;成为高层做出经营决策的重要依据&#xff1f;其实&#xff0c;要做到这些&#xff0c;与开发框架软件公司联手合…

无人机机巢有哪些,无人机机场/机场的主要分类

随着无人机技术的飞速发展&#xff0c;无人机已经渗透到了物流、农业、救援、公共安全等多个领域。而为了使这些无人机能更加高效、灵活地运行&#xff0c;一个新的概念应运而生&#xff0c;那就是无人机机巢&#xff08;UAV Nest&#xff09;。复亚智能无人机机巢是一种供无人…

8.3一日总结

1.远程仓库的使用 a.克隆远程仓库 1>.在桌面克隆远程仓库 git clone 仓库名 2>.修改仓库内容 3>添加目录 git add. 4>提交: git commit -m 完成登录功能 5>推送提交远程仓库 : git push origin master -u 6>更改推送:git push(简写形式) 需要先添加,再提交,最…