解决编译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为例,应将项目属性作如下设置:
相关推荐
君义_noip21 小时前
信息学奥赛一本通 4150:【GESP2509七级】⾦币收集 | 洛谷 P14078 [GESP202509 七级] 金币收集
c++·算法·gesp·信息学奥赛·csp-s
Ricky_Theseus1 天前
静态链接与动态链接
c++
IDC02-阿杰1 天前
Windows WSL2安装Ubuntu24.04全攻略
linux·windows
澈2071 天前
双指针,数组去重
c++·算法
小辉同志1 天前
207. 课程表
c++·算法·力扣·图论
feng_you_ying_li1 天前
C++11,{}的初始化情况与左右值及其引用
开发语言·数据结构·c++
小樱花的樱花1 天前
打造高效记事本:UI设计到功能实现
开发语言·c++·qt·ui
零二年的冬1 天前
epoll详解
java·linux·开发语言·c++·链表
坚持编程的菜鸟1 天前
The Blocks Problem
数据结构·c++·算法
tankeven1 天前
HJ171 排座椅
c++·算法