我正在使用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“。我得到了错误:
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")
为什么它不认识我设置的旗子?谢谢
发布于 2022-09-18 19:45:04
例如,我怀疑您可能试图从is_directory中使用directory_iterator?如果是这样,那么您需要使用空闲函数is_directory,它接受一个file_status参数,您可以从迭代器的status()函数中得到这个参数。但是,fyi,在Windows上,如果您使用msbuild工具链构建,您可以直接使用std::filesystem,它在迭代器中具有该功能.
https://stackoverflow.com/questions/61069334
复制相似问题