解决编译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单位的文件开头增加包含语句:
cpp 复制代码
#include <chrono>
  1. 确保打开/c++14开关。确保你的编译器以支持C++14语法的模式进行编译。以Visual Studio为例,应将项目属性作如下设置:
相关推荐
笑非不退19 小时前
C# c++ 实现程序开机自启动
开发语言·c++·c#
_oP_i19 小时前
Win11 性能调优实用指南
windows
AA陈超20 小时前
从0开始学习 **Lyra Starter Game** 项目
c++·笔记·学习·游戏·ue5·lyra
q***T58320 小时前
C++在游戏中的Unreal Engine
c++·游戏·虚幻
保持低旋律节奏20 小时前
C++——C++11特性
开发语言·c++·windows
ol木子李lo20 小时前
Visual studio 2022高亮汇编(ASM)语法方法
汇编·ide·windows·visual studio
小张成长计划..21 小时前
【C++】16:模板进阶
c++·算法
王柏龙1 天前
Win11 无法找到本地组策略编辑器的解决方法
windows·策略模式
CoderIsArt1 天前
SAM-5 核心类体系的 C++ 完整设计
c++·sam5
q***09801 天前
Windows 11 如何配置node.js
windows·node.js