编译环境里存在yaml-cpp的多个版本时可能引起的问题

news2024/11/19 2:34:03

有时要编译的程序自带了特定版本的yaml-cpp,同时系统目录下也安装了更高版本的yaml-cpp,这时可能引起编译错误,就是某些yaml-cpp的API不认识,例如:

出现这种问题倒好办,正常情况下不可能,肯定能猜到是环境里有不同的版本,编译时找的另外的版本,把系统目录里安装的yaml-cpp暂时改名或移走即可。

最折腾人浪费时间的是编译时不报错,运行时发生coredump,检查发现崩溃在yaml-cpp里,例如:

YAML::Node enable_roi_node = config["enable_roi"];
if (enable_roi_node)
    enable_roi_ = enable_roi_node.as<bool>();

上面的代码运行时发生coredump,崩溃在YAML::Node的as<bool>()函数里,看起来这不可思议,正常情况下,这些函数的实现不可能有错,第一次遇到这种问题时总以为yaml-cpp的代码哪里有问题,费劲去读它的代码想找出线索,浪费了不少时间,第二天突然想到是不是环境里存在多个版本的yaml-cpp,编译链接程序时把其它版本的函数实现包含进来了,于是去/usr/include下查看,还真也有个yaml-cpp,版本和项目使用的版本不一样,把这个系统下的yaml-cpp移走,再编译程序后运行就正常了!由于yaml-cpp的实现都是放在头文件里,移走头文件即可。

环境里有多个不同版本的支持库,运行时可能加载了不同版本的库也会引起程序莫名其妙地coredump,这种情况倒是多见,例如opencv里自带了Qt的某些库,程序运行需要Qt库支持的程序时,可能会莫名地崩溃,原因就是系统里也安装了Qt,opencv里也自带了Qt库,这时可以卸载掉系统里的Qt或者通过设置LD_LIBRARY_PATH来避免加载系统环境里的Qt库,就不会发生崩溃了,某次在docker内使用Labelme时就遇到了这样的问题。

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

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

相关文章

目标检测算法发展史

前言 比起图像识别&#xff0c;现在图片生成技术要更加具有吸引力&#xff0c;但是要步入AIGC技术领域&#xff0c;首先不推荐一上来就接触那些已经成熟闭源的包装好了再提供给你的接口网站&#xff0c;会使用别人的模型生成一些图片就能叫自己会AIGC了吗&#xff1f;那样真正…

电脑突然提示找不到msvcp140.dll怎么办,解决msvcp140.dll丢失的办法

当我们在电脑上运行某些软件或游戏时&#xff0c;可能会遇到一个常见的错误消息&#xff1a;“找不到msvcp140.dll”。出现这样的情况通常意味着系统缺少一个重要的动态链接库文件&#xff0c;而这可能会导致程序无法正常启动。如果你现在遇到了这个问题&#xff0c;哪有可以用…

人大与加拿大女王大学金融管理硕士项目:开启国际视野,成就金融领袖

生活中&#xff0c;我们总会遇到各种各样的困难和挑战。有时候&#xff0c;我们会感到沮丧、迷茫甚至绝望。但是&#xff0c;正是这些困难和挑战&#xff0c;让我们变得更加坚强、勇敢和成熟。在这个职场竞争愈发激烈的时代&#xff0c;不断地充实自己是非常重要的。如果你从事…

Echats-页面切换时echats图表刷新

在src文件夹下的composables创建echats.ts echats.ts的内容为&#xff1a; import { nextTick, effectScope, onScopeDispose, ref, watch } from vue; import type { ComputedRef, Ref } from vue; import * as echarts from echarts/core; import { BarChart, GaugeChart, L…

Golang | Zinx学习笔记(一)

参考 http://zinx.me/ https://www.kancloud.cn/aceld/zinx/1960213 https://www.yuque.com/aceld/tsgooa/gx01meg5ow4pftac 说明 zinx是一个基于Golang的轻量级并发服务器框架。 目前zinx已经在很多企业进行开发使用&#xff0c;具体使用领域包括:后端模块的消息中转、长链…

Mybatis-Plus通用枚举功能 [MyBatis-Plus系列] - 第493篇

历史文章&#xff08;文章累计490&#xff09; 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 《国内最全的Spring Boot系列之六》 S…

win 下安装 nvm 的使用与配置

nvm 全名 node.js version management&#xff0c;是一个 nodejs 的版本管理工具。通过它可以安装和切换不同版本的 nodejs。 注&#xff1a;如果已经安装了 nodejs 需先卸载后再安装 nvm 为了确保 nodejs 已彻底删除&#xff0c;可以看看安装目录中是否有 node 文件夹&#x…

Linux|安装Nomachine

参考&#xff1a;2022 Nomachine 最简安装与使用指南&#xff08;https://blog.csdn.net/qq_51116518/article/details/127450253&#xff09; 解压 先将目录调整到压缩包所在目录&#xff0c;输入sudo tar zxvf nomachine_7.6.2_3_aarch64.tar.gz 添加权限 sudo chmod -R…

基于Cmake+QT+VS的C++项目构建开发编译简明教程

目前项目是尽量利用开源项目为基础&#xff0c;考虑到跨平台&#xff0c;以及后期便于开发的协同和延续&#xff0c;开发语言基于C/C、UI基于QT&#xff08;5.7.1&#xff09;&#xff0c;集成开发环境&#xff08;IDE&#xff09;使用Visual Studio&#xff08;2015&#xff0…

开心要笑,不开心就待会儿再笑,生活亦如此

90白鸭绒填充&#xff0c;给宝贝满满的安全感 厚实细腻上身真的很舒适&#xff0c;而且不会显得臃肿哦 杜邦三防面料的优点 防水防油防污&#xff0c;耐脏又实穿&#xff01;&#xff01;

Spring Cloud之API网关(Zuul)

目录 Zuul 简介 功能 工作流程 搭建 1.引入依赖 2.添加注解 3.路由转发 4.测试 实现原理 EnableZuulProxy注解 ZuulServlet FilterProcessor Zuul内置过滤器 常用配置 Zuul 简介 zuul是SpringCloud子项目的核心组件之一&#xff0c;可以作为微服务架构中的API网…

MappingMongoConverter原生mongo 枚举类ENUM映射使用的是name

j.l.IllegalArgumentException: No enum constant com.xxx.valobj.TypeEnum.stringat java.lang.Enum.valueOf

dracut添加指定固件

文章目录 linux-firmware1、固件介绍2、Microcode updates for CPUs3、如何添加固件 linux-firmware 1、固件介绍 存放在 /lib/firmware&#xff0c;固件来自kernel 仓库更多的固件可以参考git仓库&#xff0c;https://git.kernel.org/pub/scm/linux/kernel/git/firmware/lin…

day16_IO

今日内容 1.复习 2.IO 3.Hutool 4.Idea会导jar包 一、File[熟悉] 1.1 介绍 文件和目录(文件夹) 路径名的抽象表示形式。 即使用路径来表示一个文件或者一个文件夹对象 路径: 相对路径,相对于当前项目的项目名下绝对路径,按照磁盘来确定 1.2 构造方法 File(String pathname) 通…

从 Hash索引、二叉树、B-Tree 与 B+Tree 对比看索引结构选择

从 Hash索引、二叉树、B-Tree 与 BTree 对比看索引结构选择 1、Hash 结构1.1、关于 Hash 数据结构1.2、InnoDB索引为啥不选 Hash 结构1.3、关于InnoDB 提供自适应 Hash 索引 &#xff08;Adaptive Hash Index&#xff09; 2、二叉搜索树3、平衡二叉树&#xff08;AVL树 &#x…

EMQX内置Web管理控制台-Dashboard

一、Dashboard概述 EMQX Dashboard官网文档&#xff1a;https://docs.emqx.com/zh/enterprise/v5.1/dashboard/introduction.html 1、简介 EMQX 为用户提供了一个功能强大的内置管理控制台&#xff0c;即 EMQX Dashboard。通过这个控制台的 Web 界面&#xff0c;用户可以轻松监…

基于STM32闭环步进电机控制系统设计

**单片机设计介绍&#xff0c;1654基于STM32闭环步进电机控制系统设计&#xff08;仿真&#xff0c;程序&#xff0c;说明&#xff09; 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序文档 六、 文章目录 一 概要 基于STM32的闭环步进电机控制系统设计是…

劳动安全无小事,劳保安全鞋为您的足部安全保驾护航

安全生产责任重于泰山。日常说到劳动防护&#xff0c;人们往往先想到的是安全帽、工作服、安全带等身体与头部的防护&#xff0c;从而足部的伤害是较容易被人们所忽视的。其实脚部的防护至关重要&#xff0c;我们在日常工作中常见的足部伤害有&#xff1a;冲击、撞击伤害&#…

CSS中的栅格布局

CSS中的栅格布局 在写前端项目的时候&#xff0c;我之前一直习惯使用flex布局&#xff0c;flex布局写起来比较随心&#xff0c;几乎可以实现任意形式的页面布局。不过自从B占看到某位大佬的grid布局后&#xff0c;发现布局居然还可以这么玩&#xff0c;正好自己在写一个vue3的…