我正在尝试使用 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
但没有成功。
感谢您的帮助。
您不应该使用 __cxx11。
您的标头或 cpp 文件必须如下所示。
#include <filesystem>
std::filesystem::path file_path = "foo.txt";
请提供您如何使用文件系统库