如何使用CMake获取系统的路径分隔符?
获取CMake中的路径分隔符
嘿,这个问题CMake其实已经帮你考虑到了,完全不用自己手动折腾系统判断,省心又靠谱:
优先使用内置变量
CMAKE_DIR_SEPARATOR
这个变量会根据当前构建系统自动适配路径分隔符:类Unix系统(Linux、macOS等)下是/,Windows系统下是\。你可以直接用它,也可以把它赋值给自定义变量:# 直接打印查看当前路径分隔符 message("当前系统的路径分隔符: ${CMAKE_DIR_SEPARATOR}") # 赋值给自定义变量以便后续使用 set(MY_CUSTOM_PATH_DELIM ${CMAKE_DIR_SEPARATOR})手动判断方案(不推荐,仅作补充)
如果你出于特殊需求一定要自己实现判断逻辑,可以通过CMAKE_HOST_SYSTEM_NAME区分操作系统:if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows") # Windows下反斜杠需要转义,所以要写两个 set(MY_CUSTOM_PATH_DELIM "\\") else() # 类Unix系统直接用正斜杠 set(MY_CUSTOM_PATH_DELIM "/") endif()
⚠️ 小提示:强烈建议用CMAKE_DIR_SEPARATOR,这是CMake官方维护的变量,能覆盖所有边缘场景,比自己写判断逻辑靠谱得多。
内容的提问来源于stack exchange,提问作者einpoklum
相关产品推荐
相关产品推荐

