解决编译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为例,应将项目属性作如下设置:
相关推荐
渡我白衣20 小时前
C++世界的混沌边界:undefined_behavior
java·开发语言·c++·人工智能·深度学习·语言模型
却道天凉_好个秋20 小时前
c++ 协程
c++
无敌最俊朗@1 天前
视频时间基 (time_base) 详解:时间的“刻度单位”
c++
脏脏a1 天前
【C++ 入门】:引用、内联函数与 C++11 新特性(auto、范围 for、nullptr)全解析
开发语言·c++
AA陈超1 天前
虚幻引擎5 GAS开发俯视角RPG游戏 P06-28 构建属性菜单小部件控制器
c++·游戏·ue5·游戏引擎·虚幻
恒者走天下1 天前
cpp / c++零基础就业学习一站式学习平台
开发语言·c++·学习
qq_433554541 天前
C++ 单调栈
数据结构·c++·算法
fpcc1 天前
计算机原理—缓存
c++·缓存
利刃大大1 天前
【高并发服务器】十二、LoopThreadPool线程池管理模块
服务器·c++·项目
Summer_Uncle1 天前
【C++学习】对象特性--继承
开发语言·c++·学习