使用colcon编译ROS2包时如何使用std::filesystem库?

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

我正在尝试使用 std::filesystem 库和

colon build
编译我的第一个 ROS2 包,但出现以下编译错误:

function "std::filesystem::__cxx11::path::filename" is not a type name

这是我的包的 cmake 的一部分:

...
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
  add_compile_options(-Wall -Wextra -Wpedantic)
endif()
...

正如您在上面看到的,我尝试强制编译器使用 C++17。 我想知道

...__cxx11...
的说法来自哪里?

我也尝试过使用

std::experimental::filesystem::path::filename
但没有成功。

感谢您的帮助。

cmake ros2 colcon
1个回答
0
投票

您不应该使用 __cxx11。

您的标头或 cpp 文件必须如下所示。

#include <filesystem>

std::filesystem::path file_path = "foo.txt";

请提供您如何使用文件系统库

© www.soinside.com 2019 - 2024. All rights reserved.