首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Windows中使用C2039时,错误CMake:‘is _目录’:不是‘std::实验性::文件系统’的成员

在Windows中使用C2039时,错误CMake:‘is _目录’:不是‘std::实验性::文件系统’的成员
EN

Stack Overflow用户
提问于 2020-04-06 21:35:03
回答 1查看 509关注 0票数 0

我正在使用Windows中的nmake构建一个项目,CMakeLists.txt (简写)是

代码语言:javascript
复制
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“。我得到了错误:

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

按照在线Why does link_libraries(stdc++fs) work but not -lstdc++fs?的一些建议,我在target_link_libraries中使用了这个标志stdc++fs,但是错误仍然没有消失。

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

此外,我仍然必须输入cmake -G"NMake Makefiles" ..,如果我只输入cmake ..,它就会构建一个visual studio解决方案。

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

set(CMAKE_CXX_FLAGS -G"NMake Makefiles")

为什么它不认识我设置的旗子?谢谢

EN

回答 1

Stack Overflow用户

发布于 2022-09-18 19:45:04

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61069334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档