当前位置: 首页 > news >正文

解决编译pcl时报错‘chrono_literals‘: is not a member of ‘std‘

解决编译pcl时报错’chrono_literals’: is not a member of ‘std’

在编译pcl库(1.14.1版)时,产生了这一类报错信息。主要在
visualization\include\pcl\visualization\impl\registration_visualizer.hpp
tools\obj_rec_ransac_scene_opps.cpp
tools\obj_rec_ransac_result.cpp
tools\image_grabber_viewer.cpp
tools\pcd_grabber_viewer.cpp
等文件中产生此错误。

报错信息

error C2871: ‘chrono_literals’: a namespace with this name does not exist
error C2039: ‘chrono_literals’: is not a member of ‘std’
error C2039: “milliseconds”: 不是 “std” 的成员

报错原因

在GNU C/C++编译器的头文件中,包含了thread之后会隐式地包含chrono头文件,因而编译时不产生上述错误;但把相同的代码放在Windows平台中用VS2022编译,便会产生此类报错信息——因为从VS2019开始,MSVC的thread头文件不再包含chrono。而VS2015的thread包含了chrono,可以正常编译。

解决方法

  1. 显式包含头文件chrono。在使用了ms单位的文件开头增加包含语句:
#include <chrono>
  1. 确保打开/c++14开关。确保你的编译器以支持C++14语法的模式进行编译。以Visual Studio为例,应将项目属性作如下设置:
    在这里插入图片描述

相关文章:

  • .NET Framework 4.0可用EXCEL导入至DataTable
  • 如何保证高防服务器中的系统安全?
  • Linux系统的延迟任务及定时任务
  • 阶段性人生答疑解惑篇:穿越市场迷雾,重构生命坐标系
  • 从数据到智慧:解密机器学习的自主学习密码
  • 下篇:深入剖析 BLE GATT / GAP / SMP 与应用层(约5000字)
  • .NET代码保护混淆和软件许可系统——Eziriz .NET Reactor 7
  • React-JSX语法
  • 第七届能源系统与电气电力国际学术会议(ICESEP 2025)
  • 深入探索RAG(检索增强生成)模型的优化技巧
  • 考研系列-计算机组成原理第二章:数据的表示和运算
  • 【UML建模】starUML工具
  • synchronized关键字的实现
  • 第二篇:Django配置及ORM操作
  • 金融软件测试有哪些注意事项?专业第三方软件测试服务机构分享
  • 【leetcode100】组合总和Ⅳ
  • AIP代码生成器——标准化接口开发智能工具
  • 算法之分支定界
  • 多语言虚拟币海外游戏娱乐平台源码详解(整合篇)
  • 架构-系统可靠性分析与设计
  • 30天内三访中国,宝马董事长:没有一家公司可以在全球价值链外独立运行
  • 朝中社发表评论文章,谴责美军部署B1-B轰炸机至日本
  • 海上生明月,九天揽星河,2025年“中国航天日”主场活动在上海启动
  • 低轨卫星“千帆星座”已完成五批次组网卫星发射,未来还有这些计划
  • 外交部回应菲律宾涉仁爱礁言论:菲方7轮运补均提前通报中方
  • 中国工程院院士、歼八Ⅱ飞机系统工程副总设计师温俊峰逝世