gpt4 book ai didi

cmake - 如何检查字符串是否是一个有效的目录(如果它是一个驱动器号)

转载 作者:行者123 更新时间:2023-12-04 02:24:38 26 4
gpt4 key购买 nike

我在处理 cmake 时偶然发现了一个奇怪的地方。

当我尝试检查一个字符串是否是一个有效目录时,我使用的是 IS_DIRECTORY 但是如果我正在测试一个驱动器的字符串,我得到一个错误。

重现代码:

CMAKE_MINIMUM_REQUIRED(VERSION 2.8.3)
IF( IS_DIRECTORY "C:/") # "C:/Windows" works
MESSAGE(STATUS "Is a dir")
ELSE()
MESSAGE(STATUS "Is not a dir")
ENDIF()

对于 C:/ 始终产生 false,对于 C:/Windows 始终产生 true

有没有一种方法可以检查 C:/ 是否是一个有效的“目录”,而无需在此位置创建文件并检查是否成功然后删除它?

执行目录检查的上下文是获取只读位置,创建文件可能会完全失败或需要提升权限(在这种情况下不需要)

最佳答案

感谢@Fraser,我跟踪到这种行为存在于 CMake 版本 2.8.11.2 中,但不存在于 2.8.12.2 中。但是 AFAIK http://www.cmake.org/files/v2.8/CMakeChangeLog-2.8.12.1 中没有更改日志条目提及对 IS_DIRECTORY

的任何修复

我建议使用最小版本来确保一致的行为

 CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12.2)

关于cmake - 如何检查字符串是否是一个有效的目录(如果它是一个驱动器号),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23513651/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com