解决编译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为例,应将项目属性作如下设置:
相关推荐
石像鬼₧魂石2 分钟前
内网渗透靶场 攻击 & 排错命令分类速查表
linux·windows·学习·ubuntu
深耕AI12 分钟前
【CUDA安装报错?】Nsight Visual Studio Edition安装失败《终极解决方法》
windows·经验分享·gpu算力
总有刁民想爱朕ha25 分钟前
Windows Server 2019部署MySQL 8教程
数据库·windows·mysql
j_xxx404_39 分钟前
C++算法入门:二分查找合集(二分查找|在排序数组中查找元素的第一个和最后一个位置)
开发语言·c++
lizz3144 分钟前
C++操作符重载深度解析
java·c++·算法
十五年专注C++开发1 小时前
QTableWidget和QTableView插入数据比较
c++·qt·qtablewidget·qtableview
无限进步_1 小时前
【C语言】队列(Queue)数据结构的实现与分析
c语言·开发语言·数据结构·c++·算法·链表·visual studio
特立独行的猫a1 小时前
Google C++ 编码规范核心要点总结 (2025精简版)
开发语言·c++·编码规范
李余博睿(新疆)1 小时前
c++经典练习题-分支练习(2)
c++·算法
卡布叻_星星1 小时前
Docker之Windows与Linux不同架构部署理解
linux·windows·docker