错误 C2039:"is_directory":在 Windows 中使用 CMake 时不是'std::experimental::filesystem'的成员



我正在Windows中使用nmake构建一个项目CMakeLists.txt(节略(是

project(SimManager CXX)
set(CMAKE_CXX_FLAGS -G"NMake Makefiles")
add_executable(SimManager 
Source/main.cpp
)

target_link_libraries(${PROJECT_NAME} PRIVATE stdc++fs)
set_target_properties (SimManager PROPERTIES
CXX_STANDARD 17
CXX_STANDARD_REQUIRED TRUE
CXX_EXTENSIONS FALSE
)

从生成文件夹运行时cmake-G"NMake Makefiles"。。nmake我得到错误:

error C2039: 'is_directory': is not a member of 'std::experimental::filesystem'

在线遵循一些建议为什么link_libraries(stdc++fs(可以工作而-lsdc++fs不能工作?我在target_link_libraries中使用了这个标志stdc++fs,但错误仍然没有消失

为什么这不起作用,缺少什么?

此外,我仍然需要键入cmake -G"NMake Makefiles" ..,如果我只键入cmake ..,它将构建一个visual studio解决方案

但是我已经使用行设置了编译标志

set(CMAKE_CXX_FLAGS -G"NMake Makefiles")

为什么它不承认我立下的旗帜?感谢

例如,我怀疑您可能试图从directory_iterator使用is_directory?如果是这样,那么您需要使用自由函数is_directory,它接受一个file_status参数,您可以从迭代器的status()函数中获得该参数。然而,在Windows上,如果你使用msbuild工具链进行构建,你可以直接使用std::filesystem在迭代器中有这个函数。。。

最新更新