错误:在 lambda 参数声明中使用“auto”仅适用于“-std=c++14”或“-std=gnu++14”以及 PCL 错误[重复]

问题描述 投票:0回答:1

我正在使用链接“https://github.com/lixiny/handeye-calibration-ros”进行校准。

当我在

catkin_make
下运行
src/ Handeye-Calibration-ROS
时,它给了我以下错误:

/usr/include/pcl-1.10/pcl/common/impl/io.hpp:272:33: error: use of ‘auto’ in lambda parameter declaration only available with ‘-std=c++14’ or ‘-std=gnu++14’

和命令

catkin_make
以 PCL 错误结束:

make[2]: *** [camera_driver/CMakeFiles/realsense2_driver.dir/build.make:76: camera_driver/CMakeFiles/realsense2_driver.dir/src/realsense2_driver.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:2053: camera_driver/CMakeFiles/realsense2_driver.dir/all] Error 2
make: *** [Makefile:146: all] Error 2
Invoking "make -j24 -l24" failed

我尝试了

CXXFLAGS=--std=gnu++14
,仍然是同样的错误。

我需要在哪个文件中更改C++的值?

c++ lambda ros point-cloud-library auto
1个回答
0
投票

根据Cmake的网站,您可以使用以下方式设置c++标准:

set_property(TARGET tgt PROPERTY CXX_STANDARD 14)

如果您想修改 makefile 本身,添加 c++ 标志应该会生成类似于以下内容的命令:

g++ -std=c++14(or gnu++14) main.cpp -o main
© www.soinside.com 2019 - 2024. All rights reserved.